PHP设计模式的策略,适配器和观察者模式详解

2022-04-17 13:06:53

策略模式

特点

定义一系列算法封装起来, 让他们可以相互替代,策略模式提供了管理相关算法族的办法, 提供了可以体会继承关系的棒法, 避免使用多重条件转移语句

实现

<?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();

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容! 

 

相关文章 大家在看