中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
《设计模式》勘误和疑问
作者:未知 时间:2005-07-27 23:27 出处:CSDN 责编:chinaitpower
              摘要:《设计模式》勘误和疑问

《设计模式》勘误和疑问

《设计模式——可复用面向对象软件基础》中文翻译版 GoF 吕建审校 机械工业出版社

勘误部分:

P65Builder模式结构图 Builder抽象类中应该有抽象增加一个抽象函数:GetResult()

原因:

1、  与后面的代码示例对应

2、  保证每个继承的类都有这个函数,以得到创建的对象

P121Stream* &StreamA =

new CompressingStream( new ASCII7Stream( new FileStream("aFileName"));

改为:

Stream* &StreamA =

new ASCII7Stream ( new CompressingStream ( new FileStream("aFileName"));

       原因:

根据上面的说明“现在我们创建FileStream类,它首先将数据压缩,然后将压缩了的二进制数据转换成为7ASCII”可知是要先压缩,后才转换。

P153:文字的倒数第三行“Application不是HelpHandler的直接子类。

      改为:

         Application不是Widget的直接子类。

       原因:

       从下面的改马可以看出ApplicationHelpHanlder的直接子类。

       当然:这里用Widget是我的猜测,也可能不对,不过原来的肯定是不对的。

其他一些打字错误就不提了!

 

疑问部分:

P160:定义的模板类SimpleCommand除了有一个类参数Receiber之外,还定义了一个Action的成员函数,起初我觉得不需要。后来想想,如果我们肯定从一个类继承,那么保证这个类中有一个Action()是可以这样做的,不过这就固定了这个函数名,使用模板定义成员函数,可以使程序运行时更灵活,因为我们可以使用不同的函数名。

P183Mediator模式中,我曾经认为Mediator模式很灵活,其实只是一种概念,用来提供交互功能,而增加其他类使用的灵活性。这些交互的Colleage具体类可以有不同接口。但是,考虑到为了容易的和Observer模式结合,这样的定义就更灵活。

P223~224:“可以不将操作静态地绑定在Element接口中,而将其安放在一个Visitor,并使用Accept在运行时进行绑定。扩展Element接口就等于定义一个新的Visitor子类而不是多个新的Element子类。”

      问题:这两句话说的是什么意思?我一直不能理解!

bykangtian0

e-maildunanshan@163.com

QQ22724092


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有