java 观察者模式
2017-07-17 15:00
190 查看
自定义观察者要实现java.util.Observer接口;
自定义被观察者要继承java.util.Observable基类;
data has changed to:100
data has changed to:200
data has changed to:300
Process finished with exit code 0
自定义被观察者要继承java.util.Observable基类;
观察者
/** * 观察者 * 实现java.util.Observer接口 */ public class NumObserver implements Observer{ /** * This method is called whenever the observed object is changed. An * application calls an <tt>Observable</tt> object's * <code>notifyObservers</code> method to have all the object's * observers notified of the change. * * @param o the observable object. * @param arg an argument passed to the <code>notifyObservers</code> */ @Override public void update(Observable o, Object arg) { NumObservable numObserver=(NumObservable) o; System.out.println("data has changed to:"+((NumObservable) o).getData()); } }
被观察者
/** * 被观察者 * - 继承java.util.Observable * * - 被观察者手动调用setChanged()和notifyObservers()方法后,就会自动通知 * 被观察者的观察者列表中的所有观察者执行update()方法 * * - 只有先调用setChanged()之后,notifyObservers()方法才会去调用update()方法 */ public class NumObservable extends java.util.Observable{ private int data; public void setData(int data){ this.data=data; this.setChanged(); //通知观察者 this.notifyObservers(data); } public int getData(){ return this.data; } public String toString(){ return String.valueOf(this.data); } }
测试
** * 测试类 */ public class Test_ { @Test public void testObservableModel(){ //被观察者 NumObservable numObservable=new NumObservable(); //观察者 NumObserver observer=new NumObserver(); //将观察者添加到被观察者的观察者列表中 numObservable.addObserver(observer); //改变数值 numObservable.setData(100); numObservable.setData(200); numObservable.setData(300); } }
结果
/home/zhangjian/tools/jdk/bin/javadata has changed to:100
data has changed to:200
data has changed to:300
Process finished with exit code 0
相关文章推荐
- 【java设计模式】观察者模式
- java Observer 观察者模式
- java设计模式7.策略模式、模板方法模式、观察者模式
- Java 回调函数 与 观察者模式
- Java开发中的23种设计模式详解----观察者模式(Observer)
- Java23种设计模式案例:观察者模式(observer)
- Java 观察者模式的浅析
- java设计模式之观察者模式
- All About JAVA 关于设计模式中的“观察者模式”
- Java设计模式——观察者模式
- Java观察者模式(Observer模式)
- Java设计模式——观察者模式
- JAVA系列-设计模式-观察者模式
- Java-设计模式-观察者模式
- java设计模式--观察者模式
- Java设计模式之观察者模式
- Java设计模式之观察者模式(Observer)
- java设计模式--观察者模式
- JAVA常用设计模式(3)观察者模式
- Java设计模式-----Observer观察者模式