观察者模式
OO原则:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;
针对接口编程,而不是针对实现编程;
多用组合,少用继承;
为交互对象之间的松耦合设计而努力。
观察者模式:
在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知,并自动更新。
例:设计气象站,把WeatherData对象当作主题,把布告板当作观察者,
1、
2、使用Java内置的观察者模式:
setChanged()方法用来标记状态已经改变的事实,好让notifyObservers()知道当它被调用时应该更新观察者。(setChanged()方法更多的弹性、更适当地通知观察者)
观察者和可观察者之间用松耦合方式结合,可观察者不知道观察者的细节,只知道观察者实现了观察者接口。
使用此模式时,你可从被观察者处推或拉(push或pull)数据。
java有多种观察者模式的实现,包括:java.utill.Observable、Swing。