我有一个设计问题,我的课程是以这种方式设置的:
abstract class Advertiser abstract class AdvertiserCampaign
| |
| |
class AdvUno extends Advertiser class AdvUnoCampaign extends AdvertiserCampaign
class AdvDos extends Advertiser class AdvDosCampaign extends AdvertiserCampaign
class AdvTre extends Advertiser class AdvTreCampaign extends AdvertiserCampaign
问题是AdvUno
两者AdvUnoCampaign
都需要一种对其他人来说不需要的特殊身份验证方法。现在我已经把它放在了AdvUno
,但同样,它会被AdvUnoCampaign
(以及以这种方式设置的一堆其他类)所需要。
- 我无法进行
AdvUnoCampaign
扩展AdvUno
,因为 PHP 中没有多重继承,而且还因为它通常不是一个好的、干净的设计实践。 - 如果我进行
AdvertiserCampaign
extendAdvertiser
,那么下面的所有扩展类(AdvUnoCampaign
、AdvDosCampaign
等)都必须实现一堆与它们无关的抽象方法,并且已经在每个Advertiser
类中实现了这些方法。
简而言之,在这种情况下,最佳设计实践是什么?我宁愿不只是将代码复制并粘贴到所有AdvOne
类中。任何帮助或建议将不胜感激。谢谢!