观察者模式
观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生变化时,其(观察者)能够自动收到通知并更新。
观察者模式的核心思想是:将观察者与被观察者解耦,使得它们可以独立变化。目标发送通知时,无需指定观察者,通知(可以携带通知信息作为参数)会自动传播。这使得观察者和观察目标之间的依赖关系达到松耦合。
观察者模式的结构
观察者模式通常包含以下几个角色:
- 主题(Subject):被观察的对象,维护着观察者列表,提供添加和移除观察者的方法,并在状态变化时通知所有观察者。
- 观察者(Observer):关注主题变化的对象,每当主题状态变化时,观察者都会被通知并执行相应的操作。
- 具体主题(ConcreteSubject):实现主题接口,管理自身的状态,并在状态变化时通知观察者。
- 具体观察者(ConcreteObserver):实现观察者接口,定义在接到通知时的具体行为。
观察者模式的应用场景
- 需要解耦观察者与被观察者。
- 需要支持一对多的通信。
- 需要处理事件或监控数据变化。