文章目录


[观察者模式和 事件委托]

现在重新加深下观察者模式的理解。

需求

设计模式(24) --  观察者模式_设计模式

传统方式实现

设计模式(24) --  观察者模式_设计模式_02


设计模式(24) --  观察者模式_javascript_03


设计模式(24) --  观察者模式_源码分析_04


CurrentConditions

设计模式(24) --  观察者模式_设计模式_05


WeatherData

设计模式(24) --  观察者模式_设计模式_06


Client

设计模式(24) --  观察者模式_源码分析_07


设计模式(24) --  观察者模式_设计模式_08

缺点

设计模式(24) --  观察者模式_源码分析_09

观察者模式

设计模式(24) --  观察者模式_源码分析_10


设计模式(24) --  观察者模式_javascript_11

观察者模式解决天气预报需求

设计模式(24) --  观察者模式_javascript_12


Observer

设计模式(24) --  观察者模式_设计模式_13


CurrentConditions

设计模式(24) --  观察者模式_javascript_14


BaiduSite

设计模式(24) --  观察者模式_源码分析_15


Subject

设计模式(24) --  观察者模式_javascript_16


WeatherData

  • 类是核心
  1. 包含最新的天气情况信息
  2. 含有 观察者集合,使用ArrayList管理
  3. 当数据有更新时,就主动的调用 ArrayList, 通知所有的(接入方)就看到最新的信息
  4. 设计模式(24) --  观察者模式_源码分析_17

  5. Client
  6. 设计模式(24) --  观察者模式_javascript_18

  7. 运行结果:
  8. 设计模式(24) --  观察者模式_观察者模式_19

观察者模式的好处

设计模式(24) --  观察者模式_观察者模式_20

观察者模式在 Jdk 应用的源码分析

设计模式(24) --  观察者模式_设计模式_21


设计模式(24) --  观察者模式_javascript_22