首页 > 其他 > 详细

天气预报项目中的观察者模式

时间:2018-10-15 22:27:32      阅读:145      评论:0      收藏:0      [点我收藏+]

该项目的应用场景是:

  气象局需要我们构建一套系统,这系统有两个公告牌,分别用于显示当前的实时天气和未来几天的天气预报。当气象局发布新的天气数据后,两个公告牌上显示的天气数据必须实时更新。气象局同时要求我们保证程序拥有足够的可扩展性,因为后期随时可能要新增新的公告牌。
 

原理:

  技术分享图片

 

  我们用WeatherDate实现了主题接口,两个公告牌 CurrentConditionsDisplay和ForcastDisplay实现了Observer和DisplayElement接口,在他们的构造方法中会调用WeatherData中的registerObserver()方法把自己注册成观察者,并将他们保存到一个集合中。当被观察者也就是WeatherData数据变化时,会调用notifyObserver()方法通知观察者,也就是两个公告牌,并调用 Updata()方法来更新 自己的数据。

 

该模式的优点:

  1.将观察者(公告牌)和被观察者(气象局)彻底解耦,被观察者只知道观察者列表的抽象接口,被观察者不知道具体的观察者。

  2.被观察者发送通知,所有注册的观察者都会收到信息,可以实现广播机制。

 

最后附上程序的源码地址:https://github.com/BaronZ88/DesignPatterns/tree/master/src/com/baron/patterns/observer

天气预报项目中的观察者模式

原文:https://www.cnblogs.com/hhachi/p/9795026.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!