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 オブジェクト指向デザインパターン
http://www.bkjia.com/PHPjc/1015543.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1015543.html技術記事 PHP デザイン パターン - テンプレート パターン テンプレート パターンは、抽象クラスを準備し、具体的なメソッドと具体的な構造の形式でロジックの一部を実装し、次にいくつかの抽象メソッドを宣言してサブクラスに実装を強制します...