0

クラスに多くの基本機能を持たせることができるように、拡張したい PHP でクラスを作成しています。問題は、機能が非常に異なるため、1 つのクラスだけに異なるメソッドを混在させたくないということです。組織化と拡張性のために、私はそれらを論理的に分離することを好みます。

3 つのクラスがあるとします。

クラスユーザー{}

クラス トラッカー { }

クラス リスター { }

ユーザーは、実際のオブジェクトを表すメイン クラスです。クラスの具体的な機能を気にすることなく、Tracker と Lister はどちらも一種のヘルパーであるため、User で適用可能でなければならないメソッドを提供します。継承を使用すると、「拡張」として多くのクラスを作成する必要があるときに一度だけ継承できるようになり、クラス User で階層を追加して終了します。これを回避するオプションはありますか?つまり、PHP が多重継承をサポートしていないことを知っているだけで、今言ったように、他のクラスの機能を使用して User クラスを拡張することは可能ですか?

ありがとうございました!

4

1 に答える 1

0

クラスが User クラスを支援または装飾する場合は、デコレータ パターンの実装を使用する方がよい場合があります。

$user = new User();
//default behavior
$user->getMethod();

$tracker = new Tracker($user);
//enhanced behavior
$tracker->getMethod();
于 2013-08-07T16:25:39.550 に答える