标签:
在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");
}
}
标签:
原文地址:http://www.cnblogs.com/xtsylc/p/4761983.html