策略模式
特点
定义一系列算法封装起来, 让他们可以相互替代,策略模式提供了管理相关算法族的办法, 提供了可以体会继承关系的棒法, 避免使用多重条件转移语句
实现
<?phpabstract class Strategy{ abstract function goSchool();}class Run extends Strategy{ public function goSchool() { echo "走路去学校"; }}class Subway extends Strategy{ public function goSchool() { echo "地铁去学校"; }}class Bike extends Strategy{ public function goSchool() { echo "公交去学校"; }}class GoSchoolContext{ protected $_stratege; public function __construct($stratege) { $this->_stratege = $stratege; } public function goSchool() { $this->_stratege->goSchool(); }}$traget = new Run();$obj =r $observer) { $this->_observers[] = $observer; } public function notify() { foreach($this->_observers as $object) { $object->watch(); } }}// 观察者class Cat1 implements Observer{ public function watch(){ echo "Cat1 watches TV<hr/>"; }}class Dog1 implements Observer{ public function watch(){ echo "Dog1 watches TV<hr/>"; }} class People implements Observer{ public function watch(){ echo "People watches TV<hr/>"; } }$action = new WatchAction();$action->register(new Cat1());$action->register(new People());$action->register(new Dog1());$action->notify();总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!







