?观察者模式-Observer
源码地址: https://github.com/mumushuiding/golang-design-pattern/tree/master/09_Observer
❓ 问题
采用观察者模式,当一个对象的状态发生变化 时,它会? 通知 所有依赖它的对象。
✔️ 解决方法
一个? 可观察 对象可以被多个? 观察者 对象监督。可观察对象在运行时? 登记 观察者,当它状态发生变化时,都会? 通知 所有的观察者。
观察者模式使用两种方法把最新的状态发送给观察者:
⚡️类图
?参与者
- IObservable (可观察的接口)。接口中含有对观察者的? 登记 和❌ 注销 以及抽象方法取状态。
- IObserver (观察者接口)。是可观察类(Observable)的回调接口。接口由一个观察者实现
- ? Observable (可观察类)。包含指向观察类对象的引用列表。
- ? Observer (观察者类)。
?评价
?优点
- 观察者可以动态添加和删除
- 可观察类和观察者 互不依赖
?缺点
- 观察者过多时,发布消息需要消耗过多时间