Java与模式 观察者模式Observer Pattern
来源:互联网 发布:4g网络车载大屏机 编辑:程序博客网 时间:2024/06/09 20:02
观察者模式又叫作发布-订阅模式(publish-subscribe),模型-视图(model-view)模式,源-监听者(source-listener)模式,或者从属者(dependents)模观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生改变时,会通知所有的观察者对象,使他们能够自动更新自己。
实现类图:
Java提供了观察者模式的相关类:
java.util.observer
java.util.observable
应用类图如下:
其中需要用户自己实现Watched类和Watcher类。
Client应用代码如下:
public class Client
{
static private Watched watched;
static private Observer watcher;
public static void main(String[] args)
{
watched = new Watched();
watcher = new Watcher(watched);
watched.changeData("In C, we create bugs.");
watched.changeData("In Java, we inherit bugs.");
watched.changeData("In Java, we inherit bugs.");
watched.changeData("In Visual Basic, we visualize bugs.");
}
}
大家要注意,观察者模式是给观察对象设置观察者,而不是给观察者设定观察对象。故观察对象中需要有个Container存放观察者。但是上面应用为什么在构造观察者时给了一个观察对象参数呢?而不是把观察者作为参数赋给观察对象?
watcher = new Watcher(watched);
实际上你也可以构造一个没有参数的观察者,然后把这个观察者加入观察对象中。addObserver(o:Observer)
这里用了一个的编程技巧,在观察者的构造方法中调用了此方法。
- Java与模式 观察者模式Observer Pattern
- Java 观察者模式( Observer Pattern)
- Java Observer Pattern(观察者模式)
- Java设计模式--观察者模式【Observer Pattern】
- 观察者模式(Observer Pattern)
- 观察者模式(Observer Pattern)
- 观察者模式(Observer Pattern)
- 观察者模式(Observer Pattern)
- 观察者模式(Observer Pattern
- Observer Pattern(观察者模式)
- Observer Pattern(观察者模式)
- 观察者模式(Observer Pattern)
- 观察者模式 ObServer Pattern
- 观察者模式(Observer Pattern)
- 观察者模式(Observer Pattern)
- 观察者模式(Observer Pattern)
- 观察者模式(Observer pattern)
- 观察者模式【Observer Pattern】
- 第10章 指针(七) 应用1------函数间数据的双向传递
- 什么样的测试人员是好的测试人员
- Google Docs 新增绘图功能
- 谁能帮我看看这段代码怎么实现不了小数点功能????
- 大中型网站架构探秘
- Java与模式 观察者模式Observer Pattern
- XFN 1.1 relationships meta data profile学习笔记
- 关于ini文件的使用 - Forum Nokia Wiki
- 系统程序员成长计划-拥抱变化(下)
- Mcad学习笔记之委托再理解(delegate的构造器,MulticastDelegate,BeginInvoke,EndInvoke,Invoke4个方法的探讨)
- 大型网站架构演变和知识体系
- Struts + Spring +ibatis 整合开发步骤:
- linux内核的idle进程分析
- PHP 执行系统外部命令 system() exec() passthru()