观察者模式:定义了对象之间一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。
例子:气象站,当气象站的天气发生变化时,对应的各类显示器应该能把读数改变。实现方式:将显示器作为观察者注册到气象站主题中中,当气象站读数发生变化时,去通知已注册的显示器更新显示。
设计原则:为了交互对象之间的松耦合而努力
主题接口:
public interface Subject{
//注册观察者
public void registerObserver(Observer o);
//移除观察者
public void removeObserver(Observer o);
//通知观察者
public void notifyObservers();
}
观察者接口:
public interface Observer {
public void update(Observable obs, Object arg);
}
JDK中观察者模式:
Swing中,向组件注册监听者,比如按下某个按键,打印出YES!。