0%

二、观察者模式

气象监测应用的概况

此系统中的三个部分是气象站(获取实际气象数据的物理装置)、WeatherData对象(追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看)。

29232658

我们的工作就是建立一个应用,利用WeatherData对象获取数据,并更新3个布告板:目前状况、气象统计和天气预报。

WeatherData类

29563592

  1. WeatherData类中有getter方法,可以取得三个测量值:温度、湿度和气压。
  2. 当新的测量数据准备妥当时,measurementsChanged()方法就会被调用。
  3. 我们需要实现三个使用天气数据的布告板:“目前状况”、“气象统计”、“天气预报”。一旦WeatherData有新的测量,这些布告必须马上更新。
  4. 此系统必须可以扩展,让其他开发人员建立定制布告板,用户可以随心所欲的添加或删除任何布告板。

错误示范

30208312

问题分析:
30229873

认识观察者模式

出版者+订阅者=观察者模式
30929065

定义观察者模式

观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖都会收到通知并自动更新

31615093

松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到最低。

设计气象站

31755226

源码:https://github.com/chentianming11/design-pattern
observer包!