php 中的观察者模式是一种设计模式,允许观察者订阅主题的状态变化并做出响应。当主题状态更改时,它会通知观察者,观察者可以相应地更新自己:主题类维护一个观察者列表并提供方法附加和删除观察者。主题类提供获取和设置状态的方法,当状态更改时触发观察者通知。观察者类定义了一个更新方法,在主题状态更改时调用。具体观察者类实现更新方法以更新自己的逻辑。在实践中,观察者订阅主题,当主题状态更改时,观察者收到通知并更新自己。
PHP 中观察者模式运作原理
简介
观察者模式是一种软件设计模式,允许对象(称为观察者)订阅其他对象(称为主题)的状态变化并对其做出响应。当主题的状态改变时,它会通知所有观察者,而观察者可以相应地更新自己。
立即学习“PHP免费学习笔记(深入)”;
代码结构
在 PHP 中,我们可以使用以下类结构来实现观察者模式:
主题类:
class Subject{ private $observers = []; private $state; public function attach(Observer $observer) { $this->observers[] = $observer; } public function detach(Observer $observer) { $index = array_search($observer, $this->observers); if ($index !== false) { unset($this->observers[$index]); } } public function getState() { return $this->state; } public function setState($state) { $this->state = $state; $this->notifyObservers(); } private function notifyObservers() { foreach ($this->observers as $observer) { $observer->update($this); } }}
登录后复制
观察者类:
interface Observer{ public function update(Subject $subject);}
登录后复制
具体观察者类:
class ConcreteObserver1 implements Observer{ public function update(Subject $subject) { // 更新自己的逻辑 }}class ConcreteObserver2 implements Observer{ public function update(Subject $subject) { // 更新自己的逻辑 }}
登录后复制
实战案例
我们可以使用以下代码示例来说明观察者模式在实践中的应用:
$subject = new Subject();$observer1 = new ConcreteObserver1();$observer2 = new ConcreteObserver2();$subject->attach($observer1);$subject->attach($observer2);$subject->setState('New state'); // 触发更新// 观察者收到更新并相应更新自己
登录后复制
当主题的状态更新时,所有订阅它的观察者都会收到通知并相应更新自己。
以上就是PHP中的观察者模式如何工作?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1720366.html