思想: 气象站(观察者)和 需要从气象站获取天气数据的站点(被观察者), 观察者支持对被观察者的"注册、移除、推送"操作;
- 未使用观察者进行天气推送
- 当有其他第三方网站接入时, 气象站要修改dataChange()推送方法, 这样违背了OCP原则;
- 使用观察者
- 角色说明
- Subject: 观察者(气象站) -> 观察者能对被观察者动态的注册、移除、推送;
- Observer: 被观察者(第三方网站);
- registerObserver: 注册被观察者到观察者;
- removeObserver: 从观察者中移除被观察者;
- notifyObserver: 观察者推送消息给被观察者;
- 代码实现