从客户端开始:
@Test
public void testObserver(){
NumObserverable observable = new NumObserverable();//被观察者
NumObserv er observer1 = new NumObserver();//观察者
Observer observer2 = new ODDOberser();//观察者
Observer observer3 = new EvenOberser();//观察者
observable.addObserver(observer2);//
observable.addObserver(observer3);
observable.addObserver(observer1);
observable.setData(5);
}
NumObserverab类
public class NumObserverable extends Observable{
public static final Integer EVEN = 2;
public static final Integer ODD = 1;
private int data = 0;
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
Integer flag = EVEN;
if((data&0x00001) == 1){
flag = ODD;
}
setChanged();
notifyObservers(flag);
}
}
ODDObserver类
public class ODDOberser implements Observer{
public void update(Observable o, Object arg) {
if(arg == NumObserverable.ODD){
System.out.println("NumOberserale发生奇数设置:"+((NumObserverable)o).getData());
}
}
}
EvenObserver类
public class EvenOberser implements Observer{
public void update(Observable o, Object arg) {
if(arg == NumObserverable.EVEN){
System.out.println("NumOberserale发生偶数设置:"+((NumObserverable)o).getData());
}
}
}