浅谈 Observable和Observer 观察者模式
来源:互联网 发布:苹果mac好用吗 编辑:程序博客网 时间:2024/04/30 14:09
1.什么是观察者模式
观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,
并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式
通常被用来实时事件处理系统。
2.java如何实现观察者模式
java通过 类java.util.Observable 和 接口 java.util.Observer 实现该模式。(不得不吐槽一下,sun公司真的土掉渣了,
类的名字以able结束,接口反而不用) 被观察者继承Observable 观察者实现Observer接口。下面看例子:
//被观察者
public class TObservable extends Observable {private int data;public void setDate(int data){this.data =data;this.setChanged();this.notifyObservers();} public Integer getData(){return data;}}
/** * 观察者 * @author */public class TObserver implements java.util.Observer{//观察者实现 update方法@Overridepublic void update(Observable o, Object arg) {TObservable observable = (TObservable) o;System.out.println("TObservable.date is exchange:"+observable.getData());}}//测试public static void main(String[] args) {//实例化被观察者TObservable impl = new TObservable();//添加观察者,可以添加多个观察者impl.addObserver(new TObserver());//被观察者发生改变impl.setDate(12);impl.setDate(13);}
3.使用Observer和Observable 观察者与被观察者是同一对象//examplepublic class TOObs extends Observable implements Observer {private int data;public void setData(int data){this.data =data;this.setChanged();this.notifyObservers();}public Integer getData(){return this.data;}@Overridepublic void update(Observable o, Object arg) {TOObs toobs = (TOObs)o;System.out.println("exchanges"+toobs.getData());} //测试TOObs toobs = new TOObs();toobs.addObserver(toobs);toobs.setData(11);toobs.setData(11);
0 0
- 浅谈 Observable和Observer 观察者模式
- Java_观察者模式(Observable和Observer)
- java observer和observable 实现观察者模式
- 观察者模式-java 内置 Observable 和 Observer
- Java_观察者模式(Observable和Observer)
- Java_观察者模式(Observable和Observer)
- Java_观察者模式(Observable和Observer)
- Java_观察者模式(Observable和Observer)
- 观察者模式(Observer、Observable)
- Observable与Observer (观察者模式)
- Java观察者模式 : Observer / Observable
- java 观察者模式Observable Observer
- 观察者模式(基于Observable 类和Observer 接口)
- JAVA 观察者设计模式 Observable类 和 Observer接口
- javaSE观察者模式Observer和Observable--相关api的翻译
- 通过Observable类和Observer接口实现观察者设计模式
- 观察者设计模式-Observable类和Observer接口
- android Observable and Observer(观察者模式)
- 以每行一个单词的形式打印其输入
- android View事件分发
- 常见对象_Arrays工具类的概述和使用
- UVA1492 LA5694 线段树扫描线(矩形面积合并)
- .gitignore中增加过滤规则不起作用的解决方法
- 浅谈 Observable和Observer 观察者模式
- 3-3-Java多线程-案例-银行存钱&同步函数
- golang https服务简单介绍
- 4-1-JDK1.5-Lock接口
- 5-1-Java多线程-练习-妖的出现和解决
- teamviewer一些按键冲突
- Java Arrays.asList()方法详解
- sessionStorage 、localStorage 和 cookie 之间的区别
- amr转MP3(ffmpeg问题记录)