ホームページ >バックエンド開発 >PHPチュートリアル >PHP デザイン パターン - デコレータ パターン_PHP チュートリアル
デコレーターモードはデコレーターモードとも呼ばれます。デコレーション モードは、元のクラス ファイルを変更したり継承を使用したりすることなく、オブジェクトの機能を動的に拡張します。ラッピングオブジェクト、つまり装飾を作成することで、実際のオブジェクトをラッピングします。
UML クラス図:
キャラクター:
コンポーネントオブジェクトのインターフェース: これらのオブジェクトに責任を動的に追加できます
すべてのデコレータの親クラス: コンポーネント インターフェイスと一致するインターフェイスを定義し、実際には装飾されたオブジェクトである Component オブジェクトを保持する必要があります。
特定のデコレータ クラス: 装飾されたオブジェクトに追加される特定の関数を実装します。特定のコンポーネント オブジェクトまたは別の特定のデコレータ オブジェクトを装飾するために使用されます。
特定のコード:
リーリー
リーリー
1. オブジェクトに関数を動的に追加する必要があり、これらの関数は動的に取り消すことができます。
2. いくつかの基本関数の順列と組み合わせによって生成される非常に多くの関数を追加する必要があり、継承関係が非現実的になります。
3. サブクラスの生成方法が展開できない場合。場合によっては、多数の独立した拡張機能があり、それぞれの組み合わせをサポートするために多数のサブクラスが生成され、サブクラスの数が爆発的に増加することがあります。別のケースとしては、クラス定義が非表示になっているか、クラス定義を使用してサブクラスを生成できないことが考えられます。