1.观察者模式observe
使用java自带的观察者模式
1.//被观察者:ServerManager
public class ServerManager extends Observable {
private int data = 0;
public int getData() {
return data;
}
public void setData(int i) {
if (this.data != i) {
this.data = i;
setChanged();
}
notifyObservers(); //只有在setChange()被调用后,notifyObservers()才会去调用update(),否则什么都不干。
}
}
2.
//观察者一:AObserver
public class AObserver implements Observer {
public AObserver(ServerManager sm) {
super();
// TODO Auto-generated constructor stub
sm.addObserver(this);//注册加入观察者
}
public void update(Observable arg0, Object arg1) {
System.out.println("AObserver receive:Data has changed to " + ((ServerManager) arg0).getData());
}
}
3.
//观察者二:BObserver
public class BObserver implements Observer {
public BObserver(ServerManager sm) {
super();
sm.addObserver(this);//注册加入观察者
}
public void update(Observable o, Object arg) {
// TODO Auto-generated method stub
System.out.println("BObserver receive:Data has changed to " + ((ServerManager) o).getData());
}
}
4.
public class TestDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerManager sm = new ServerManager();
AObserver a = new AObserver(sm);
BObserver b = new BObserver(sm);
// sm.setData(5);
// sm.deleteObserver(a);//注销观察者,以后被观察者有数据变化就不再通知这个已注销的观察者
sm.setData(10);
}
}