设计模式中的观察者模式可谓是耳熟能详了。
而这一点从java的JDK中亦有所体现。
java.util 包下面专门有一个类Observable
以及一个接口Observer
本文借助于这一个类一个接口,简单实现一个观察者模式的小例子
import java.util.Observable;
public class MySubject extends Observable { private int state; public void setState(int state){ this.state = state; setChanged(); notifyObservers(state); } }import java.util.Observable; import java.util.Observer;public class MyObserver implements Observer { private int mState ; @Override public void update(Observable o, Object arg) { this.mState = (Integer)arg; } public int getmState() { return mState; } public void setmState(int mState) { this.mState = mState; } }public static void main(String args[]){ MySubject subject = new MySubject(); MyObserver observer1 = new MyObserver(); MyObserver observer2 = new MyObserver(); subject.addObserver(observer1); subject.addObserver(observer2); int state = 1; subject.setState(state); System.out.println(observer1.getmState()); System.out.println(observer2.getmState()); }打印结果1 1修改state值public static void main(String args[]){ MySubject subject = new MySubject(); MyObserver observer1 = new MyObserver(); MyObserver observer2 = new MyObserver(); subject.addObserver(observer1); subject.addObserver(observer2); int state = 10; subject.setState(state); System.out.println(observer1.getmState()); System.out.println(observer2.getmState()); }打印结果10 10