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

WBOY
リリース: 2016-07-13 09:51:00
オリジナル
847 人が閲覧しました

PHP デザイン パターン - テンプレート パターン

テンプレート パターンは、抽象クラスを準備し、具体的なメソッドと具体的な構造の形式でロジックの一部を実装し、次にいくつかの抽象メソッドを宣言して、サブクラスに残りのロジックを強制的に実装します。サブクラスが異なれば、これらの抽象メソッドを異なる方法で実装できるため、残りのロジックの実装も異なります。最初にトップレベルのロジック フレームワークを開発し、ロジックの詳細は特定のサブクラスに任せます。

UML クラス図:

キャラクター:

抽象テンプレート ロール (MakePhone): 抽象テンプレート クラスは、特定のアルゴリズム プロセスと、サブクラスによって実装する必要があるいくつかの抽象メソッドを定義します。

具体的なサブクラスの役割 (XiaoMi): MakePhone で抽象メソッドを実装します。サブクラスは独自の実装形式を持つことができますが、実行プロセスは MakePhone によって制御されます。

コアコード:

リーリー
; } パブリック抽象関数 MakeScreen(); パブリック抽象関数 MakeBattery(); //Xiaomi 携帯電話クラス XiaoMi は MakePhone を拡張します { public function __construct($name='Xiaomi') ( $name); } public function MakeBattery() { echo Xiaomi バッテリーの生産が完了しました。
; } public function MakeCamera() { echo Xiaomi カメラの生産が完了しました。
; } public function MakeScreen() { echo Xiaomi の画面制作が完了しました。
; } } // Meizu 携帯電話クラス FlyMe extends MakePhone { function __construct($name='Meizu') {parent::__construct($name) } public function MakeBattery() { echo Meizu バッテリーの生産が完了しました。
; } public function MakeCamera() { echo Meizu カメラの製作が完了しました。
; } public function MakeScreen() { echo Meizu の画面制作が完了しました。
; } }
クライアントのテスト コードを呼び出します。

リーリー

適用可能なシナリオと利点:

1. 一貫した詳細レベルでプロセスまたは一連のステップを完了しますが、より詳細なレベルでの個々のステップの実装は同時に異なる場合があります。通常、これに対処するにはテンプレート パターンの使用を検討します。

2. メソッドのサブクラス実装で不変動作と可変動作が混在する場合、不変動作はサブクラス内で繰り返し出現します。これにより、サブクラスがもつれを取り除くことができます。不変の動作が繰り返されること。

3. テンプレート パターンは、変更されていない動作を超抽象クラスに移動し、サブクラス内の重複コードを削除することで、その利点を反映しています。テンプレート パターンは、コードを再利用するための優れたプラットフォームを提供します。

私のビデオコースをフォローすることを歓迎します。アドレスは次のとおりです、ありがとうございます。

PHP オブジェクト指向デザインパターン

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1015543.html技術記事 PHP デザイン パターン - テンプレート パターン テンプレート パターンは、抽象クラスを準備し、具体的なメソッドと具体的な構造の形式でロジックの一部を実装し、次にいくつかの抽象メソッドを宣言してサブクラスに実装を強制します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート