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

PHP デザイン パターン - デコレータ パターン_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:54:591086ブラウズ

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

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

UML クラス図:

キャラクター:

コンポーネントオブジェクトのインターフェース: これらのオブジェクトに責任を動的に追加できます

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

特定のデコレータ クラス: 装飾されたオブジェクトに追加される特定の関数を実装します。特定のコンポーネント オブジェクトまたは別の特定のデコレータ オブジェクトを装飾するために使用されます。

特定のコード:

リーリー
クライアントのテスト コードを呼び出します。

リーリー
; $qiuxie=new QiuXie(); $tshirt=new Tshirt(); $tshirt->Display(); 該当するシーン:

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

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

3. サブクラスの生成方法が展開できない場合。場合によっては、多数の独立した拡張機能があり、それぞれの組み合わせをサポートするために多数のサブクラスが生成され、サブクラスの数が爆発的に増加することがあります。別のケースとしては、クラス定義が非表示になっているか、クラス定義を使用してサブクラスを生成できないことが考えられます。


http://www.bkjia.com/PHPjc/993866.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/993866.html技術記事 PHP デザインパターン - デコレータモード デコレータモードはデコレータモードとも呼ばれます。デコレーション モードは、元のクラス ファイルを変更したり継承を使用したりすることなく、オブジェクトの機能を動的に拡張することです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。