【发布时间】:2013-09-18 15:47:10
【问题描述】:
我有几个标准类:
abstract class Parent {}
class Child1 extends Parent {}
class Child2 extends Parent {}
Parent 类包含两个子类共有的逻辑,但每个子类都有自己的附加逻辑。
对于我的每个客户,此逻辑都可以配置。所以对于任何特定的客户,我可能有:
abstract class ClientParent {}
class ClientChild1 extends ClientParent {}
class ClientChild2 extends ClientParent {}
我遇到的问题是如何将标准类中的逻辑放入这些类中。第一种方法是这样的:
abstract class ClientParent extends Parent {}
好的,现在我的所有客户端特定类中都有标准父逻辑。伟大的。但是子类已经在扩展ClientParent,所以我们不能为它们做同样的事情。我的“解决方案”就是这样做:
abstract class Parent {}
class Child1 extends ClientParent {}
class Child2 extends ClientParent {}
abstract class ClientParent extends Parent {}
class ClientChild1 extends Child1 {}
class ClientChild2 extends Child2 {}
那里;现在所有适当的逻辑都被传递下来,每个人都很高兴。除了现在我的标准类耦合到特定的客户端。由于我有很多客户,这显然不好。
我在这里有什么?有没有办法单独通过继承来解决这个问题,还是我应该研究更复杂的配置注入策略?
编辑:
我使用的是 PHP 5.3,所以我无法使用traits 来解决这个问题。
【问题讨论】:
标签: php oop inheritance configuration