在观察者模式中有2个要素:一个是被观察对象,另一个是观察者。但被观察对象的状态发生改变会通知观察者。 举例:把订阅报纸的人看作是观察者,把报纸看作被观察对象。每当有新的新闻就要通知订阅报纸的人。本篇分别用实现接口和使用委托事件的方式来实现。 □ 通过实现接口实现 观察者接口,把接收到的新闻显示出来。...
分类:
其他好文 时间:
2014-09-11 16:55:42
阅读次数:
174
KVO应该是key-value-observer,意思就是键值观察。作用就是用一个对象A监测对象B,如果对象B属性发生变化,那么就会发送一个消息给对象A,这样……呃,就这样了。至于拿到通知后怎么处理,那是后话。...
分类:
其他好文 时间:
2014-09-10 15:59:50
阅读次数:
222
在 My.Ioc 中,要想在服务注销/注册时获得通知,可以通过订阅 ObjectBuilderRegistered 和 ObjectBuilderUnregistering 这两个事件来实现。但是,使用这两个事件也有一些不足。首先,它们只能针对当前注册/注销的服务发出通知,而对于依赖当前服务的上层服...
分类:
其他好文 时间:
2014-09-10 12:13:50
阅读次数:
218
观察者模式具有以下组件(1) Subject 目标: 维护一系列的观察者,方便添加或者删除观察者(2) Observer 观察者 : 为那些在目标状态发生改变时需获取得通知的对象提供一个接口(3) ConcreteSubject 具体目标 : 状态发生改变时,向observer发出通知,储存Conc...
分类:
其他好文 时间:
2014-09-09 22:47:39
阅读次数:
246
假设有一个软件公司,每当有新产品推出,就把信息通知到一些客户。 把通知这个动作抽象成一个接口。 public interface IService { void Notif(); }客户如果想获得通知,就需要实现以上的接口。这里的客户被看作是观察者。 public class CustomerA :...
分类:
其他好文 时间:
2014-09-07 07:37:04
阅读次数:
202
观察者模式,一句话概括,就是定义并维护对象之间的一对多关系。“定义”是指建立“一”与“多”之间的依赖关系;“维护”是指我们可以动态地解除依赖以及建立新的依赖。
分类:
其他好文 时间:
2014-09-05 19:44:01
阅读次数:
191
观察者模式(Observer Pattern)在项目中经常会被使用到,也被叫做发布订阅模式,也就是说 观察者 = 发布者 + 订阅者
GoF的《设计模式》中对观察者是这样描述的:
Define a one-to-many dependency between objects so that when one object changes state, all its depende...
分类:
其他好文 时间:
2014-09-05 01:00:30
阅读次数:
373
* 简单来说,观察者模式=发布者+订阅者。下面是一个有关猎头的典型的例子。在下面这张图当中有两个角色:
* 猎头和寻找工作的人。找工作的人向猎头订阅,告知自己希望得到一份工作,当有新的工作机会的时候,
* 猎头就会把这个信息通知给曾经向他订阅过的人。
猎头接口:
package com.pattern.observer;
/**
* @author Qixuan.Chen
* 创...
分类:
编程语言 时间:
2014-09-02 15:58:54
阅读次数:
230
形象例子: 想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦。观察者模式: 观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对.....
分类:
其他好文 时间:
2014-09-01 21:06:13
阅读次数:
300
观察者模式:通过字面意思,可以知道观察,监视着某个变量,及时的知道变量是否已变。观察者模式就是对类Observable 和 接口 Observer的使用。直接上代码:设置一个Person类,继承Observable,作为被观察者。 publicclassPersonextendsObservable...
分类:
其他好文 时间:
2014-08-29 18:05:28
阅读次数:
152