首页 / 软件开发 / JAVA / Java中应用Observer接口实践Observer模式
Java中应用Observer接口实践Observer模式2011-03-24zhangjunhd在Java中通过Observable类和Observer接口实现了观察者模式 。Observer对象是观察者,Observable对象是被观察者。1. 实现观察者模式实现观察者模式非常简单,[1]创建被观察者类,它继承自java.util.Observable类;[2]创建观察者类,它实现java.util.Observer接口;[3]对于被观察者类,添加它的观察者:void addObserver(Observer o)addObserver()方法把观察者对象添加到观察者对象列表中。当被观察事件发生时,执行:setChanged();
notifyObservers();setChange()方法用来设置一个内部标志位注明数据发生了变化 ;notifyObservers()方法会去调用观察者对象列表中所有的 Observer的update()方法,通知它们数据发生了变化。只有在setChange()被调用后,notifyObservers()才会去调用 update()。[4]对于观察者类,实现Observer接口的唯一方法updatevoid update(Observable o, Object arg)形参Object arg,对应一个由notifyObservers(Object arg); 传递来的参数,当执行的是notifyObservers();时,arg为null。2.实例一NumObserable是一个被观察者,当它的成员变量data的数值发 生变化时,会通知所有的观察者。NumObserable.javapackage com.zj.observer;
import java.util.Observable;
public class NumObservable extends Observable {
private int data = 0;
public int getData() {
return data;
}
public void setData(int i) {
data = i;
setChanged();
notifyObservers();
}
}