1、项目需求
天气预报项目需求,具体要求如下:
1)
气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去
(
比如发布到自己的网站或第三方)
。
2)
需要设计开放型
API
,便于其他第三方也能接入气象站获取数据。
3)
提供温度、气压和湿度的接口
4)
测量数据更新时,要能实时的通知给第三方
2、观察者模式
基本概念:
观察者模式:对象之间
多对一依赖
的一种设计方案,被依赖的对象为
Subject
,
依赖的对象为
Observer
,
Subject
通知
Observer
变化
,
比如这里的奶站是
Subject
,是
1
的一方。用户时
Observer
,是多的一方。
详解:
Subject:登记注册、移除和通知
1) registerObserver
注册
2) removeObserver
移除
3) notifyObservers()
通知所有的注册的用户,根据不同需求,可以是更新数据,让用户来取,也可能是实施推送,看具体需求定
Observer
:接收输入
3、
观察者模式的好处
1)
观察者模式设计后,会以集合的方式来管理用户
(Observer)
,包括注册,移除和通知。
2)
这样,我们增加观察者
(
这里可以理解成一个新的公告板
)
,就不需要去修改核心类WeatherData
不会修改代码,遵守了
ocp
原则。