1 简介
  • 定义
    定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新

  • 类型
    行为型

2 适用场景

关联行为场景,建立一套触发机制

3 优点
  • 观察者和被观察者之间建立一个抽象的耦合
  • 观察者模式支持广播通信
4 缺点
  • 观察者之间有过多的细节依赖、提高时间消耗及程序复杂度
  • 使用要得当,要避免循环调用
5 实例

【一看就会的Java设计模式教程】- 观察者模式_原力计划
【一看就会的Java设计模式教程】- 观察者模式_原力计划_02
【一看就会的Java设计模式教程】- 观察者模式_观察者模式_03
【一看就会的Java设计模式教程】- 观察者模式_代码区_04
【一看就会的Java设计模式教程】- 观察者模式_代码区_05
【一看就会的Java设计模式教程】- 观察者模式_java_06
【一看就会的Java设计模式教程】- 观察者模式_java_07
【一看就会的Java设计模式教程】- 观察者模式_原力计划_08
【一看就会的Java设计模式教程】- 观察者模式_原力计划_09
【一看就会的Java设计模式教程】- 观察者模式_观察者模式_10
接下来,来到观察者- Teacher的代码区中
【一看就会的Java设计模式教程】- 观察者模式_原力计划_11

6 源码应用
  • JDK应用
    【一看就会的Java设计模式教程】- 观察者模式_java_12

Guava

【一看就会的Java设计模式教程】- 观察者模式_原力计划_13
【一看就会的Java设计模式教程】- 观察者模式_java_14

  • 注册,即添加观察者
    【一看就会的Java设计模式教程】- 观察者模式_观察者模式_15
    【一看就会的Java设计模式教程】- 观察者模式_原力计划_16
    【一看就会的Java设计模式教程】- 观察者模式_代码区_17
  • 移除观察者【一看就会的Java设计模式教程】- 观察者模式_观察者模式_18
    【一看就会的Java设计模式教程】- 观察者模式_java_19