在Java语言的Java.util库里面,提供了一个observable类以及一个observer接口,构成Java语言对观察者模式的支持。
下面直接看如何使用Java对观察者模式的支持:
在下面的例子里,被观察者对象叫做watched,也就是被监视着;而观察者对象叫做watcher,也就是监视人的意思。
watched对象继承自observable类,而watcher对象实现了observer接口。
/** * 被监视着对象 */ public class Watched extends Observable { private String data=""; /* * 取值方法 * */ public String retrieveData() { return data; } /* * 改值方法 * */ public void changeData(String data) { if(!this.data.equals(data)) { this.data=data; setChanged(); } notifyObservers(); }
/** * 监视着 */ public class Watcher implements Observer { public Watcher(Watched w) { w.addObserver(this); } @Override public void update(Observable o, Object arg) { System.out.println("Data has been changed to:‘"+((Watched)o).retrieveData()+"‘"); } }
public class Tester { private static Watched watched; private static Observer watcher; public static void main(String[] args) { watched=new Watched(); watcher=new Watcher(watched); watched.changeData("1"); watched.changeData("1"); watched.changeData("2"); watched.changeData("3"); } }
时间: 2024-11-07 06:49:08