Head First 设计模式——观察者模式(Observer Pattern)——Python实现(1)

来源:互联网 发布:有个性的淘宝自动回复 编辑:程序博客网 时间:2024/05/16 09:57

 

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议进行许可。允许非商业转载,但应注明作者及出处。

 


作者:liuyuan_jq

2011-06-13


 

观察者模式定义

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖都会收到通知并自动更新。观察者模式提供了一种对象设计,让主题和观察者之间松耦合。

 


设计原则

 

 

为了交互对象之间的松耦合设计而努力。松耦合的设计之所以能让我们建立有弹性的系统,能够应对变化,是因为对象之间的互相依赖降到了最低。

 


 

问题

 

 

建立下一代Internet气象观察站,该气象站必须建立在我们专利申请中的WeatherData对象上,由WeatherData对象负责追踪目前的天气状况(温度,湿度,气压)。

  • 建立一个应用,有三种布告板,分别显示目前的状态、气象统计及简单的预报。
  • 当WeatherObject对象获得最新的测量数据时,三种布告板必须实时更新。
  • 公布一组API,让其他开发人员可以写出自己的气象布告板。

 

 

 


 

设计气象站

WeatherData实现Subject接口

 

气象组件实现观察者接口

 

布告栏显示接口

 

 


 

源代码具体实现

subject.py

 

observer.py

 

weatherData.py

 

displayElement.py

 

 


 

测试

 

weatherStation.py

 

 

weatherStationHeatIndex.py

 

 

 

 

 

原创粉丝点击