时间:2021-07-01 10:21:17 帮助过:32人阅读
观察者模式(Observer),当一个对象状态发生改变时,依赖它的对象全部收到通知,并自动更新。
模式中的角色
phpDemo
abstractclassEventGenerator{private$observer_arr = array();
/*
添加观察者
*/publicfunctionaddObserver( Observer $observer)
{$this->observer_arr[] = $observer;
}
/*
通知所有观察者
*/publicfunctionnotify()
{foreach ($this->observer_arr as$observer)
{
$observer->update();
}
}
}
classEventextendsEventGenerator{publicfunctiontrigger()
{echo'event happen!
';
//当事件发生时,通知所有观察者$this->notify();
}
}
interfaceObserver{//自动更新functionupdate();
}
classObserver1implementsObserver{//实现update方法publicfunctionupdate()
{echo'observer1 update
';
}
}
classObserver2implementsObserver{//实现update方法publicfunctionupdate()
{echo'observer2 update
';
}
}
$obj = new Event();
//添加观察者$obj->addObserver(new Observer1());
$obj->addObserver(new Observer2());
$obj->trigger();
模式总结
以上就介绍了php设计模式之———观察者模式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。