观察者模式定义:定义了对象之间的一对多的依赖,这样一来,当一个对象发生改变状态的时候,它的所有依赖者都会收到通知并自动更新。参考如下图:
观察者设计模式也叫发布-订阅模式。
也可以称作:出版者+订阅者 = 观察者模式
在Android中观察者模式的实例有:广播机制,ContentObserver的注册方式,一个是同步的观察者模式,一个是异步的观察者模式。当两个对象之间松耦合,它们依然可以交互,...
分类:
编程语言 时间:
2015-06-13 12:55:19
阅读次数:
150
背景? ? ????上一次去看电影院看电影,半旁边的妹子说只要扫一扫就能免费领取爆米花一份,你说我怎么躲得过妹子的招数呢?所以拿起我的手机,扫一扫,注册会员,ok 领取爆米花。时间过去了,我发现我的手机...
分类:
其他好文 时间:
2015-06-13 00:00:34
阅读次数:
207
The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and no...
分类:
其他好文 时间:
2015-06-12 23:46:18
阅读次数:
168
定义: 在事件驱动的环境中,比如浏览器这种持续寻求用户关注的环境中,观察者模式(又名发布者-订阅者 “publisher-subscriber" 模式) 是一种管理人与其任务之间的关系(确切的讲,是其对象及其行为和状态之间的关系)的得力工具。用javascript的 话来说,这种模...
分类:
编程语言 时间:
2015-06-12 23:40:27
阅读次数:
146
http://www.cnblogs.com/mengdd/archive/2013/02/07/2908929.html观察者模式观察者模式 Observer 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对象,.....
分类:
编程语言 时间:
2015-06-12 16:33:38
阅读次数:
131
KVO(Key Value Observing),是观察者模式在Foundation中的实现。KVO的原理简而言之就是:1、当一个object有观察者时,动态创建这个object的类的子类2、对于每个被观察的property,重写其set方法3、在重写的set方法中调用- willChangeVal...
分类:
移动开发 时间:
2015-06-11 16:11:49
阅读次数:
146
问题:
在Android中,根据Android的事件树,我们知道:在与屏幕按键、触摸、滑动等操作与应用进行交互时触发的相关事件中,交互事件是沿着事件树自顶向下传播的;
当位于事件树上层的父控件接受到事件后,判断事件的所属,若需要,则截获事件,否则,向下子控件传播。
那么我们在编写各种Listener,在View各种事件函数接受和处理各类交互事件,这种处理模式,是否就是一种观察者模式呢...
分类:
移动开发 时间:
2015-06-11 14:43:36
阅读次数:
114
设计模式分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式(门面模式)、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
...
分类:
其他好文 时间:
2015-06-11 09:31:33
阅读次数:
142
项目组是做IM产品的,服务端当然用的是NIO技术做通信底层。但是一直都是对NIO有些理论的了解,没有实践,最近有空了,就实践了下NIO。
NIO,新IO,也称之为非阻塞IO。非阻塞是它跟传统IO的最重要的区别之一。传统IO用Socket进行通信,NIO则用channel进行消息交互。channel必须注册到selector上,把它感兴趣的事件告诉selector。这是个观察者模式的实现。...
分类:
编程语言 时间:
2015-06-10 19:27:22
阅读次数:
134
观察模式一般用于某业务模块的扩展使用,发布者初始化某项业务模块时,可以初始化观察者列表,每个观察者需要注册发布者模块,当发布者发布某项业务时可以选择通知或不通知观察者列表中的观察者,如果notify之后...
分类:
其他好文 时间:
2015-06-08 17:39:38
阅读次数:
134