策略模式
策略模式
在策略模式中,一个类的行为或其算法可以在运行时更改.这种类型的设计模式属于行为型模式
在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象,策略对象改变context对象的执行算法
代码
1 创建一个接口
<?php interface Strategy { public function doOperation($a,$b); }
2 创建实现接口的实体类
<?php class OperationAdd implements Strategy { public function doOperation($a, $b) { return $a + $b; } }
<?php class OperationMultiply implements Strategy { public function doOperation($a, $b) { return $a * $b; } }
3 创建context类
<?php class Context { private $_strategy; public function __construct(Strategy $strategy) { $this->_strategy = $strategy; } public function executeStrategy($a, $b) { return $this->_strategy->doOperation($a, $b); } }
4 执行
$context = new Context(new OperationAdd()); $context->executeStrategy(1,2); $context = new Context(new OperationMultiply()); $context->executeStrategy(1,2);