戦略パターンはオブジェクトの動作パターンであり、一連のアルゴリズムをカプセル化することを目的としています。必要なアルゴリズムを動的に選択して使用します。
戦略パターンとは、プログラムにおける意思決定制御に関わるパターンを指します。この設計パターン自体の核となるアイデアはオブジェクト指向プログラミングのポリモーフィックなアイデアであるため、戦略パターンは非常に強力です。
戦略モードの 3 人のキャラクター:
1.抽象的な戦略の役割
2.具体的な戦略的役割
3.環境の役割 (抽象的な戦略の役割への参照)
実装手順:
1.抽象ロールクラスを定義する (実装ごとに共通の抽象メソッドを定義する)
2.特定のストラテジークラスを定義する(親クラスの共通メソッドを具体的に実装する)
3.環境ロールクラスを定義します (抽象ロール変数をプライベートに宣言し、構築メソッドをオーバーロードし、抽象メソッドを実行します)
戦略パターンのコード例:
abstract class BaseAgent { //抽象戦略クラス 抽象関数 PrintPage(); } //クライアントがIE(環境ロール)の場合に使用するクラス クラス ieAgent は、baseAgent を拡張します { 関数 PrintPage() { 「IE」を返します; } } //クライアントがIE(環境ロール)でない場合に使用されるクラス otherAgent クラスは、baseAgent を拡張します { 関数 PrintPage() { 「IE ではない」を返します; } } class Browser { //特定の戦略的役割 パブリック関数呼び出し($object) { return $object->PrintPage(); } } $bro = 新しいブラウザ (); echo $bro->call ( new ieAgent () ); > プログラミングの領域の外にも、戦略パターンの例がたくさんあります。例: 朝、家から仕事に行く必要がある場合は、いくつかの戦略を検討できます。地下鉄に乗る、バスに乗る、徒歩などの方法があります。各戦略は同じ結果を達成しますが、使用するリソースは異なります。