思想: 气象站(观察者)和 需要从气象站获取天气数据的站点(被观察者), 观察者支持对被观察者的"注册、移除、推送"操作;


  • 未使用观察者进行天气推送
  1. 23种设计模式 VOL.17: 观察者模式
  2. 当有其他第三方网站接入时, 气象站要修改dataChange()推送方法, 这样违背了OCP原则;

  • 使用观察者
  1. 23种设计模式 VOL.17: 观察者模式
  2. 角色说明
    1. Subject: 观察者(气象站)   -> 观察者能对被观察者动态的注册、移除、推送;
    2. Observer: 被观察者(第三方网站);
    3. registerObserver: 注册被观察者到观察者;
    4. removeObserver: 从观察者中移除被观察者;
    5. notifyObserver: 观察者推送消息给被观察者;
  3. 代码实现
    1. 23种设计模式 VOL.17: 观察者模式

 

 

相关文章:

  • 2021-11-05
  • 2022-01-12
  • 2021-05-20
  • 2021-12-16
  • 2021-10-10
  • 2021-09-21
  • 2021-09-28
猜你喜欢
  • 2021-05-30
  • 2021-10-10
  • 2021-08-05
  • 2021-10-20
相关资源
相似解决方案