观察者模式

OO原则:

找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;

针对接口编程,而不是针对实现编程;

多用组合,少用继承;

为交互对象之间的松耦合设计而努力。

观察者模式:

在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知,并自动更新。

例:设计气象站,把WeatherData对象当作主题,把布告板当作观察者,

1、

2、使用Java内置的观察者模式:

setChanged()方法用来标记状态已经改变的事实,好让notifyObservers()知道当它被调用时应该更新观察者。(setChanged()方法更多的弹性、更适当地通知观察者)

 观察者和可观察者之间用松耦合方式结合,可观察者不知道观察者的细节,只知道观察者实现了观察者接口。

使用此模式时,你可从被观察者处推或拉(push或pull)数据。

java有多种观察者模式的实现,包括:java.utill.Observable、Swing。

原文地址:https://www.cnblogs.com/VicLily/p/8874122.html