php设计模式-观察者模式

// 观察者模式 主要分为被观察者,观察者 // 当一个对象(被观察者)状态发生变化时,依赖它的对象(观察者)全部会收到通知,并自动更新 // 观察者模式实现了低耦合,非侵入式的通知与更新机制// 主题接口 interface Subject{ public function register(Observer $observer); public function notify(); } // 观察者接口 interface Observer{ public function watch(); }// 主题 class Action implements Subject{ public $_observers = array(); // 把观察者都放在一个数组里 public function register(Observer $observer){ $this->_observers[] = $observer; } // 通知观察者变动 public function notify(){ foreach($this->_observers as $observer){ $observer->watch(); } } }// 观察者 class Cat implements Observer{ public function watch(){ echo "cat"; } } class Dog implements Observer{ public function watch(){ echo "dog"; } } class People implements Observer{ public function watch(){ echo "people"; } }// 应用实例 $action = new Action(); $action->register(new Cat()); $action->register(new Dog()); $action->register(new People()); $action->notify(); // 输出 cat dog people

    推荐阅读