Java对观察者模式的支持
2015-08-26 23:19 你吃不吃麦芽糖 阅读(238) 评论(0) 收藏 举报在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");
}
}
浙公网安备 33010602011771号