背景
气象站需要将每天测量到的温度、湿度、气压等数据公布出去,
需要设计开放的API,以便第三方获取气象站的数据,
如果数据有更新,能及时地通知第三方
传统思路:
创建WeatherData类,有温度、湿度、气压属性,声明Get方法,便于第三方获取
不利于维护,更新属性的效率低。
基本介绍
对象之间多对一的设计方案,Subject是1,Observer是多都依赖Subject。
两个角色
①Subject:发出消息的类,具体操作的类
②Observer:用户,接收消息的类。
Subject中的三个基本方法:
registerObserver:注册用户
removeObserver:移除用户
notifyObserver:通知所有注册的用户
具体实现
气象局(WeatherData)实现Subject接口
第三方网站实现Observer接口
在Subject中声明上述的三个基本方法。在通知方法中,将温度、湿度、气压传给Observer