- 首页 > it技术 > >
// 观察者模式 主要分为被观察者,观察者
// 当一个对象(被观察者)状态发生变化时,依赖它的对象(观察者)全部会收到通知,并自动更新
// 观察者模式实现了低耦合,非侵入式的通知与更新机制// 主题接口
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
推荐阅读