Head First Design Patterns读书笔记及C++版代码(一):观察者(Observer)模式

Head First Design Patterns读书笔记及C++版代码(一):观察者(Observer)模式

粟卫民  http://www.gisdev.cn/   http://blog.csdn.net/suen/ 日期: 2008-9-18

保留所有版权。如需转载,请联系作者,并在醒目位置注明出处

Head First Design Patterns》是Kathy SierraBert Bates所著的关于设计模式的经典著作,为了复习一下设计模式,近来我找到了这本书来读。这本书的特点就是结合实际的例子来讲软件设计原则和设计模式,很生动,非常值得一读。但是,本书的代码是Java的,这对于我们这些以C系列代码出身的Corder还是有一定的不便之处,因此,我在学习的过程中把本书的代码在VS2008开发工具中逐步改写成C++的代码,附在读书笔记的后面,希望对大家有所帮助。

本书第一章利用一个Duck例子来说明OO设计的几个基本原则:(1)找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;(2)针对接口编程,而不是针对实现编程。

第二章主要讲述观察者(Observer)模式。它使用的例子就是一个Internet气象观测站的例子。针对气象站获得的物理数据,我们用三个布告板来分别显示目前状况(温度、湿度、气压)、气象统计和天气预报。此系统的主要要求是当气象站数据更新时,三个布告板可以同步更新。此系统将来可能会有的变化是将增加更多类型的布告板,现有的布告板也有可能废除。

这就是观察者模式的一个典型应用场景。观察者模式定义对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。类似的应用场景还有出版社和订阅者场景。观察者模式的类图如下所示:

 

http://www.gisdev.cn/space/upload/2008/09/18/75174069164.jpg

气象站例子的设计类图如下所示:

 

http://www.gisdev.cn/space/upload/ 2008/09/18 /79690789415.jpg

 

附件:是我改写的基于VS2008开发工具的C++代码。

可以通过下面网址下载:

http://www.gisdev.cn/showtopic-109.aspx

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值