策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。
介绍
策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
策略模式的三个角色:
1、抽象策略角色
2、具体策略角色
3、环境角色(对抽象策略角色的引用)
实现步骤
1、定义抽象角色类(定义好各个实现的共同抽象方法)
2、定义具体策略类(具体实现父类的共同方法)
3、定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)
实现代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php abstract class baseAgent { abstract function PrintPage(); } class ieAgent extends baseAgent { function PrintPage() { return 'IE'; } } class otherAgent extends baseAgent { function PrintPage() { return 'not IE'; } } class Browser { public function call($object) { return $object->PrintPage (); } } $bro = new Browser (); echo $bro->call ( new ieAgent () ); ?>
|