ホームページ > バックエンド開発 > PHPチュートリアル > PHP デザイン パターン -- デコレータ パターン

PHP デザイン パターン -- デコレータ パターン

WBOY
リリース: 2016-06-23 13:35:31
オリジナル
987 人が閲覧しました

免責事項: この一連のブログの参考資料は、Cheng Jie 著の「Dahua Design Pattern」です。

デコレータパターンはデコレータパターンとも呼ばれます。デコレーション モードは、元のクラス ファイルを変更したり継承を使用したりすることなく、オブジェクトの機能を動的に拡張します。ラッピングオブジェクト、つまり装飾を作成することで、実際のオブジェクトをラッピングします。


UML クラス図:


デコレータの親クラスは、コンポーネント インターフェイスと一致するインターフェイスを定義する必要があり、実際には装飾されたオブジェクトである Component オブジェクトを保持します。装飾 特定の装飾クラス: 装飾オブジェクトに特定の機能を追加する機能を実現します。特定のコンポーネント オブジェクトまたは別の特定のデコレータ オブジェクトを装飾するために使用されます。

1. オブジェクトに関数を動的に追加する必要があり、これらの関数は動的に取り消すことができます。

2. いくつかの基本関数の順列と組み合わせによって生成される非常に多くの関数を追加する必要があるため、継承関係が非現実的になります。

3. サブクラスの生成方法が拡張に使用できない場合。場合によっては、多数の独立した拡張機能があり、それぞれの組み合わせをサポートするために多数のサブクラスが生成され、サブクラスの数が爆発的に増加することがあります。別のケースとしては、クラス定義が非表示になっているか、クラス定義を使用してサブクラスを生成できないことが考えられます。 🎝
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート