概述
观察者模式类似订牛奶:
1)奶站/气象局:Object
2)用户/第三方网站:Observer
Subject:
registerObserver() 注册
removeObserver() 移除
notifyObservers() 通知所有注册的用户,根据不同需求,可以更新数据。让用户来取,也可能是实施推送。
Observer: 接收输入
update() 获取到观察得对象得数据变化。以便在本类中处理。
对象之间多对一依赖的一种设计方案。被依赖的对象位subject。依赖的对象位observer。Subject通知Observer变化。比如奶站是Subject,用户是Observer。
原理类图
Subject:被观察者。
Observer: 观察者(通常有多个) 聚合到观察对象中去了。被观察的对象有更新时,主动调用持有的观察者的api进行数据接入。
Client: 客户端
案例
需求描述
- 气象站可以将每天测量到的温度,湿度,气压等以公告的方式
- 第三方网站需要得到这些天气数据。有多个第三方网站。把这些数据获取到之后展示。
- 测量数据更新时,要能实时得通知第三方。
- 利用观察者模式。