私はいくつかの標準クラスを持っています:
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 {}
そこには; 今では適切なロジックがすべて受け継がれ、誰もが満足しています。ただし、私の標準クラスは特定の client に結合されています。私は多くのクライアントを抱えているので、これは明らかに良くありません。
ここにいるのは何ですか?継承だけでこれに対処する方法はありますか、それともより複雑な構成注入戦略を検討する必要がありますか?
編集:
PHP 5.3 を使用しているため、特性を使用してこの問題を解決することができません。