观察者模式是一个非常有用的模式,它又叫做发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己,观察者模式完美的解决了类与类之间的耦合关系。
观察者模式使用起来很简单
1、首先被观察的类继承Observable类,在要被监听的方法中添加如下两句话
if (countObservers() > 0) {
setChanged(); //设置变化点
notifyObservers(xxx); //通知所有观察者变化
}
2、然后观察者实现Observer接口,实现update方法
public void update(Observable o, Object arg) {
if(arg instanceof xxx){
}
}
3、实例化被观察者类 Observable
实例化观察者类 Observer
被观察者类添加观察者类
Observable.addObserver(Observer) ;
调用被监听的方法即可