观察者模式的应用,主要的行为就是注册和移除观察者(observer),以及通知所有已注册的Observers。这里介绍的是Chromium项目中实现的线程安全的观察者管理及通知的基础类ObserverListThreadSafe。...
分类:
编程语言 时间:
2015-08-05 06:42:04
阅读次数:
181
(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。列表row个数delegate自定义的delegate(二)观察者模式应用...
分类:
其他好文 时间:
2015-08-04 22:27:51
阅读次数:
138
先简单写下观察者模式。观察者模式,又叫做发布-订阅模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,是他们能够自动更新自己。1 /// 2 /// 发布者接口3 /// 4 publi...
分类:
其他好文 时间:
2015-08-04 13:20:20
阅读次数:
135
观察者模式 Observer
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。
观察者模式的组成
抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现...
分类:
编程语言 时间:
2015-08-04 11:30:51
阅读次数:
222
要理解RxJava,首先得理解什么是(异步)数据流。一些典型的点击事件本质上就是一个异步数据流,这样你就可以观察它的变化并使其做出一些反应。数据流无处不在,任何东西都可以转变为数据流,例如变量,用户输入,属性,缓存,数据结构等等,每天使用的微博,你可以把微博订阅想象成点击事件一样的数据流,我们可以监听这样的数据流,并作出相应的反应。一个数据流可以作为另一个数据流的输入,甚至多个数据流也可以作为另一个...
分类:
编程语言 时间:
2015-08-03 11:35:49
阅读次数:
214
概述在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合...
分类:
Web程序 时间:
2015-08-02 19:57:54
阅读次数:
114
1意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。2别名依赖(Dependents), 发布-订阅(Publish-Subscribe)3动机将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维...
分类:
编程语言 时间:
2015-08-02 19:39:40
阅读次数:
161
六大方面:一、目标与观察者之间的关系;二、单向依赖:只能是观察者依赖目标对象;主动权在目标这里;三、命令的建议:第一、 目标接口的定义,建议在名称后面跟Subject;第二、观察者接口的定义,建议在名称后面跟Observer;第三、观察者接口的更新方法,建议名称为update;四、触发通知的时机;先...
分类:
其他好文 时间:
2015-08-02 16:41:30
阅读次数:
111
iOS设计模式 - 观察者原理图说明1. cocoa框架本身实现了观察者模式(通知中心以及KVO)2. 本人所写的例子,实现了通知中心,其特殊的地方在于,不用移除订阅了通知的对象源码https://github.com/YouXianMing/ObserverPattern//// Subscri....
分类:
移动开发 时间:
2015-07-31 23:24:30
阅读次数:
168