设计模式解析:观察者、状态与访问者模式
1. 观察者模式
1.1 注册观察者
在涉及观察者(Observer)和可观察对象(Observable)的场景中,需要决定如何将观察者注册到可观察对象上。注册方式有多种:
- 通过中介或客户端以编程方式实现。
- 由观察者自行注册,但这种情况下观察者需要有访问可观察对象的途径。
- 依据某些配置信息进行注册。
在许多情形下,一个观察者可能想要观察多个可观察对象,所以可观察对象和观察者之间的接口应具备足够的灵活性以支持这一需求。当在应用程序的某个区域内不再引用某个观察者时,也需要将其从可观察对象中移除,否则该观察者将无法被垃圾回收。另外,在通知机制中,状态信息可以选择提供给观察者,有时候仅仅通知观察者可观察对象的状态发生了改变就足够了。
1.2 具体示例:股票价格监控应用
以一个简单的股票价格监控应用(Share Price Watcher)为例,该应用用于监控特定股票(如谷歌、IBM 或苹果)的价格。当股票价格发生变化时, SharePriceWatcher 会通知所有关注该变化的对象。
在这个实现中, SharePriceWatcher 是可观察对象, Logger 是观察者,每当价格改变时, Logger 都会收到通知。可观察对象特质( Observable trait )定义了 changed 方法,混入该特质的类可以调用此方法来通知所有观察者可观察对象的状态
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



