定义
观察者模式是一种软件设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象,当主题对象发生变化时,所有的观察者对象都会得到通知并且自动更新。
在观察者模式中,有三个核心角色:
- 主题(Subject):被观察的对象,通常会维护一个观察者列表,以便在状态发生变化时通知观察者。
- 观察者(Observer):观察主题对象的状态变化,当主题状态发生变化时,观察者将得到通知并执行相应的操作。
- 具体主题(ConcreteSubject):具体的主题实现类,负责维护一个观察者列表,并实现主题对象状态变化的通知逻辑。
- 具体观察者(ConcreteObserver):具体的观察者实现类,实现观察者接口,并定义观察者接收到通知后的具体操作。
实现举例
#include <iostream>
#include <vector>
#include <string>
// 定义观察者接口
class Observe