观察者模式 (Observer Pattern)
观察者模式(Observer Pattern)是一种行为型设计模式。它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象的状态发生变化时,会自动通知所有观察者对象,使它们能够自动更新自己的状态。
一、基础
1. 意图
核心目的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
2. 使用场景
典型应用:
- 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面
- 当一个对象的改变需要同时改变其他对象,而不知道具体有多少对象需要改变
- 当一个对象必须通知其他对象,而又不希望与这些对象紧耦合
具体案例:
- 股票价格变动通知投资者
- 气象站数据变化更新多个显示板
- 电商系统中的库存变化通知
- 社交媒体中的消息推送
3. 模式结构
- 主题(Subject):也被称为被观察对象或可观察对象,它维护了一个观察者列表,提供了添加、删除观察者以及通知观察者的方法。
- 观察者(Observe