PHP设计模式—观察者模式
发布时间:2020-12-13 21:24:33 所属栏目:PHP教程 来源:网络整理
导读:? 定义: 观察者模式(Observer): 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 ? 结构: EventGenerator(抽象基类):负责添加观察者和通知观
? 定义:观察者模式(Observer):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 ?结构:
?代码实例:/** * EventGenerator.php(抽象类) * Class EventGenerator */ abstract class EventGenerator { private $observers = []; * * 添加观察者 */ public function addObserver(Observer $observer) { $this->observers[] = ; } * * 通知所有观察者 function notify() { foreach ($this->observers as ) { $observer->update(); } } } * * Event.php(事件,当状态发生改变时,通知所有登记过的观察者) * Class Event class Event extends trigger() { echo "Event<br/>n"; $this->notify(); } } * * Observer.php(Observer 接口) * Interface Observer interface Observer { function update($event_info = null); } * * Observer1.php(观察者1) * Class Observer1 class Observer1 implements) { // TODO: Implement update() method. echo "通知观察者1<br/>n"; } } * * Observer2.php(观察者2) * Class Observer2 class Observer2 echo "通知观察者2<br/>n"; } } 客户端调用: $event = new Event(); $event->addObserver( Observer1()); Observer2()); $event->trigger(); 结果: Event
通知观察者1
通知观察者2
? ? 总结:
? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |