SplObserver观察者模式
2019独角兽企业重金招聘Python工程师标准>>>
其实观察者模式这是一种较为容易去理解的一种模式吧,它是一种事件系统,意味着这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作。比如键盘,我一敲击,系统就收到通知并进行相应的回应。
interface SplSubject{public function attach(SplObserver $observer);public function detach(SplObserver $observer);public function notify();
}
interface SplObserver{public function update(SplSubject $subject);
}
class subject implements SplSubject{private $observers , $value;public function __construct(){$this->observers = array(); }public function attach(SplObserver $observer){$this->observers[] = $observer;}public function detach(SplObserver $observer){if($idx = array_search($observer, $this->observers, true)) {unset($this->observers[$idx]); }}public function notify(){foreach($this->observers as $observer){$observer->update($this);}}public function setValue($value){$this->value = $value;$this->notify();}public function getValue(){return $this->value; }}class observer implements SplObserver{public function update(SplSubject $subject){echo ‘The new state of subject’.$subject->getValue(); } }$subject = new subject();$observer = new observer();$subject->attach($observer);$subject->setValue(5);//observer会自动调用update方法,从而输出The new state of subject 5
转载于:https://my.oschina.net/assange/blog/414343
SplObserver观察者模式相关推荐
- 设计模式 ( 十六 ) 观察者模式Observer(对象行为型)
设计模式 ( 十五 ) 观察者模式Observer(对象行为型) 1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力.当对象们连接在一起时,它们就可以相互提供服务和信息. 通常来 ...
- 观察者设计模式 php,PHP设计模式 - 观察者模式
[一]模式定义 观察者模式有时也被称作发布/订阅模式,该模式用于为对象实现发布/订阅功能:一旦主体对象状态发生改变,与之关联的观察者对象会收到通知,并进行相应操作. 将一个系统分割成一个一些类相互协作 ...
- 设计模式(三)--观察者模式
观察者模式:定义了对象间的一种一对多的依赖关系,当被观察的对象发生改变时,所有依赖于它的对象都会得到通知并被自动更新,而且被观察的对象和观察者之间是松耦合的.在该模式中,有目标(Subject)和观察 ...
- PHP 高级编程(3/5) - 使用SPL(标准PHP库)实现观察者模式
SPL(标准PHP库 - Standard PHP Library)是PHP5面向对象功能中重要的部分.原文解释是这样的"The Standard PHP Library (SPL) is ...
- 设计模式 ( 十七 ):Observer 观察者模式 -- 行为型
1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力.当对象们连接在一起时,它们就可以相互提供服务和信息. 通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信.但是 ...
- php 查看spl,PHP使用标准库spl实现的观察者模式示例
本文实例讲述了PHP使用标准库spl实现的观察者模式.分享给大家供大家参考,具体如下: 前面使用纯php实现了一个观察者模式(php观察者模式), 现在使用php标准库spl在次实现观察者模式,好处是 ...
- Laravel核心解读--观察者模式
观察者模式 Laravel的Event事件系统提供了一个简单的观察者模式实现,能够订阅和监听应用中发生的各种事件,在PHP的标准库(SPL)里甚至提供了三个接口SplSubject, SplObser ...
- php yii2 观察者模式,观察者模式(Observer)
观察者模式(Observer) 3.7.1. 目的 当对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新.它使用的是低耦合的方式. 3.7.2. 例子 使用观察者模式观察消息队列在 GUI ...
- PHP实现常用设计模式之观察者模式
观察者模式定义对象的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新! 设计原则 在观察者模式中,会改变的是目标对象的状态以及观察者的数目.用这个模式,你可以改变依赖于 ...
最新文章
- MindSpore Lite整体架构介绍
- Twitter Storm常见模式
- Cisco路由器配置命令之模式转换命令
- vs2013 编译 notepad++ 源代码 2014-7-23
- 回忆四班的那些事儿~
- IAM页,IAM链表,分配单元
- 计算时间:一个运算符重载示例
- android 监听媒体库,一个蛋疼的功能,监听android系统媒体库的变动
- php ci的session和php session,php及codeigniter使用session-cookie的方法(详解)
- C语言-超市仓库管理系统的设计与实现
- 万元怎样保留小数点_excel中数值转换成万元后如何只保留两位小数?,excle 万元 元...
- 苹果电脑网速怎么测试软件,macbookpro怎么检测网速?
- java实训报告心得体会,看这一篇就够了!
- 熊绎:我看软件工程师的职业规划
- uniapp启动微信小程序报错---initialize
- c语言姓名如何定义,c语言如何输入编号和姓名
- Basketball Dribbling
- python基础-廖雪峰
- SQL中in和not in
- 14个坏习惯可能让你丢掉工作