设计模式10-观察者模式

观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。观察者模式也被称为发布订阅模式,属于行为型设计模式。

示例代码

JDK实例

  • ServletContextListener接口继承自EventListener

Spring实例

  • Spring 中的 ContextLoaderListener实现了ServletContextListener 接口

适用场景

  • 主要用于在关联行为之间建立一套触发机制的场景

模式优点

  • 观察者和被观察者之间建立了一个抽象的耦合
  • 观察者模式支持广播通信

模式缺点

  • 观察者之间有过多的细节依赖,提高时间消耗及程序复杂度
  • 需要结合业务场景合理使用,避免循环调用

参考