观察者模式和监听器

来源:互联网 发布:sony hapz1es 软件 编辑:程序博客网 时间:2024/06/10 00:44

一。jdk自带的观察者模式例子:

1.被观察者

public class Watched extends Observable{private String str;private int i = 0;public void change(String s){str = s;super.setChanged();super.notifyObservers(i++);}public String getInfo(){return str;}}

2.观察者

public class Watcher implements Observer{public void update(Observable obs,Object o){Watched w = (Watched)obs;int i = (Integer)o;String ss = "变";String str = "";for (int a = 0 ; a < i ; a++){str = str + ss;}System.out.println(w.getInfo()+str);}}

3.测试程序

public class Test {/** * @param args */public static void main(String[] args) {Observer observer = new Watcher(); // 建立一个观察者Watched observable = new Watched(); // 建立一个被观察者observable.addObserver(observer); // 给被观察者添加一个观察者for (int i = 0 ; i < 10 ; i++){observable.change("我");}}}

二、监听器相关,参照http://blog.csdn.net/gqltt/article/details/7563620

个人理解:事件源(EventSource)是被观察者,事件监听器(DemoEventListener)是观察者,他们之间使用DemoEvent传递消息。