观察者设计模式
2015-07-30 09:30
169 查看
观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。
实现观察者模式有很多形式,比较直观的一种是使用一种“注册——通知——撤销注册”的形式。下面的三个图详细的描述了这样一种过程:
被观察对象发生了某种变化(如图中的SomeChange),从容器中得到所有注册过的观察者,将变化通知观察者。
今天做一个订报纸的小例子来理解一下观察者模式 出版者+订阅者=观察者模式
用下边的图来说就是 人民日报+订阅者=观察者模式
只要是订阅了人民日报的人,有了新报纸就会送到订阅者那里去,
当你不想订的时候取消就不订阅就不会再收到报纸了。
下面我们就来用代码实现一下这个模式
开始订订阅,和调用了
转载自:http://www.cnblogs.com/li-peng/archive/2013/02/04/2892116.html
实现观察者模式有很多形式,比较直观的一种是使用一种“注册——通知——撤销注册”的形式。下面的三个图详细的描述了这样一种过程:
观察者(Observer)将自己注册到被观察对象(Subject)中,被观察对象将观察者存放在一个容器(Container)里。
被观察
被观察对象发生了某种变化(如图中的SomeChange),从容器中得到所有注册过的观察者,将变化通知观察者。今天做一个订报纸的小例子来理解一下观察者模式 出版者+订阅者=观察者模式
用下边的图来说就是 人民日报+订阅者=观察者模式
只要是订阅了人民日报的人,有了新报纸就会送到订阅者那里去,
当你不想订的时候取消就不订阅就不会再收到报纸了。
下面我们就来用代码实现一下这个模式
转载自:http://www.cnblogs.com/li-peng/archive/2013/02/04/2892116.html
相关文章推荐
- VMware vSphere5.5连接MD3200i详解(二)
- 【mark,未测试】串口中断接收方式详细比较
- android ListView 美化
- Java Collection
- web的文件管理,目录结构展示……的心路历程
- 自己写的 Readini 类
- DataSet、DataTable、Json、List 等各种数据的相互转化
- 判断它是不是你的社群成员,你要看它对你的态度
- 利用大数据玩转移动统计分析市场的方式不止一种,看看TalkingData是怎么做的?
- DevExpress v15.1:WinForms控件功能升级(三)
- 基于cepark usb开发板 VS2010使用libusb-win32开发应用程序
- MFC之CFont
- 被 Windows 10 SDK 坑了
- 图片延迟加载库Layzr
- 粉丝不在于多,在于够残
- Federated HDFS+beeline+hiveserver2 遇到的坑
- mysql表内复制行数据
- 错误argument of type "char *" is incompatible with parameter of type "LPCWSTR"的解决方法
- 硬币找零-记忆化搜索(DP动态规划)
- 流落在北京的80后北漂们的未来在哪儿