观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。观察者模式也被称为发布订阅模式,属于行为型设计模式。
示例代码
JDK实例
- ServletContextListener接口继承自EventListener
Spring实例
- Spring 中的 ContextLoaderListener实现了ServletContextListener 接口
适用场景
- 主要用于在关联行为之间建立一套触发机制的场景
模式优点
- 观察者和被观察者之间建立了一个抽象的耦合
- 观察者模式支持广播通信
模式缺点
- 观察者之间有过多的细节依赖,提高时间消耗及程序复杂度
- 需要结合业务场景合理使用,避免循环调用