Strategy Patternは、特定の特定のコンテキストに適応するために、特定の動作とアルゴリズムのセットをクラスにカプセル化します。このパターンは、アルゴリズムを自由に切り替えたり拡張したりするために使用されます。より広く使用されているデザインパターン。
<?php /* *策略模式 */ interface FlyBehavior { public function fly(); } class FlyWithWings implements FlyBehavior { public function fly() { echo "鸭子用翅膀飞行 \n"; } } class FlyWithNo implements FlyBehavior { public function fly() { echo "鸭子不用翅膀飞行 \n"; } } class Duck { private $_flyBehavior; public function performFly() { $this->_flyBehavior->fly(); } public function setFlyBehavior(FlyBehavior $behavior) //被外部调用设置策略的 { $this->_flyBehavior = $behavior; } } class RubberDuck extends Duck { } // Test Case $duck = new RubberDuck(); /* 想让鸭子用翅膀飞行 */ $duck->setFlyBehavior(new FlyWithWings()); $duck->performFly(); /* 想让鸭子不用翅膀飞行 */ $duck->setFlyBehavior(new FlyWithNo()); $duck->performFly();
関連推奨事項:
PHP 戦略パターンの定義と使用例の詳細な説明
以上がPHPデザインパターンの戦略パターンを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。