稳固而知新 Observer
来源:互联网 发布:店铺销售数据分析 编辑:程序博客网 时间:2024/05/16 07:44
OBSERVER
该模式的动机是为了在增加新的观察对象时可以无需更改被观察的对象,被观察对象可以保持封闭。
public class Observable {
List observers = new ArrayList();
public boolean addObserver(Observer o) {
observers.add(o);
}
private void fireObserver() {
for (Observer o : observers) {
o.update();
}
}
}
Context是一个GUI应用程序的唯一上下文实例,用来和服务端交互信息。TaskView是用来显示当前系统的任务列表,它实现了Observer接口,通过Observable的addObserver方法注册到Context中。Context在收到服务端发出的更新命令时,就会调用observable的notify方法,notify方法会调用注册的Observer对象的update方法。执行TaskView的update方法时,TaskView会到到后台中取到所有的Task信息,显示在自己的界面上。
上面的例子是一个典型的拉模型,Observer的update被调用后,要自己去取得新的信息,可能的后果是无法分辨信息的实时性。下面的例子为fireObserver方法增加了一个Event参数,将最新的信息发送给Observer.Observer的派生类各自实现自己的业务功能。这是Observer模式的推模型。
UserView和EMSView本别用来现实用户和Ems的列表,它们实现了Observer接口,并注册到Context中,Context受到服务端发来的Event信息,就会调用注册其中Observer的update方法,UserView和EMSView通过update接受到了Event消息,分别实现自己的需求。
推模型比拉模型适应更复杂的情况。
- 稳固而知新 Observer
- 稳固而知新 Observer
- 稳固而知新 Observer
- 稳固而知新 Observer
- 稳固而知新_FACTORY
- 稳固而知新_FACTORY
- 稳固而知新_FACTORY
- 稳固而知新_FACTORY
- 稳固而知新_FACTORY
- 稳固而知新 ABSTRACT SERVER,ADAPTER
- 稳固而知新 FACADE,MEDIATOR
- 稳固而知新 Template Method,Strategy
- 稳固而知新 Template Method,Strategy
- 稳固而知新 FACADE,MEDIATOR
- 稳固而知新 ABSTRACT SERVER,ADAPTER
- 稳固而知新 Template Method,Strategy
- 稳固而知新 FACADE,MEDIATOR
- 稳固而知新 ABSTRACT SERVER,ADAPTER
- 在RCP里面用自己的TaskView取代eclipse 的Progress View
- 产品并不仅是编程序
- 构建eclipse plugin 的Preferences
- 组态软件开发(仅限后台部分)
- 一个处理Properties的好东西 jConfig
- 稳固而知新 Observer
- WebBrowser控件说明
- vckbase全集下载
- 稳固而知新 Template Method,Strategy
- 窗体界面控件源码解析
- 快速构建axis应用
- 稳固而知新 FACADE,MEDIATOR
- C#排序算法大全
- 稳固而知新 ABSTRACT SERVER,ADAPTER