要想深入理解设计模式,就必须究其细节

       15年前,设计模式的经典之作《设计模式》出版之际,我在其封底写下了这样的评论:“这本书是对对象设计和开发实践者的重大贡献!你可有过为自己某个想法的命名冥思苦想的经历?这事的确令人苦恼。《设计模式》解决了这个问题,它归纳并组织了对象设计、创建和使用领域中已被证明行之有效的各种思想,组织出了一个清晰的目录。它对这些设计思想的规范命名,为团队成员使用相同术语高效沟通创造了条件。

 

       我为这本书做出版预审时,曾建议Addison-Wesley考虑以活页形式出版这本书,以方便将来更新或增加内容。现在回想起来,这个建议非常幼稚,我居然希望将所有的设计模式都规规矩矩塞进一本册子!而这本书的四位作者,运用高度的抽象智慧,将众多模式归纳为23种:迄今为止,所有设计模式都未能逃离这个范畴!

 

       在过去15年,我将《设计模式》指定为我的对象设计课的教科书,要求学生们将这本书放到自己的专业图书架上。在课程中,大家每读到一个模式,都要学习、讨论,并将自己的想法分享给其他人。我希望学生们能真正理解这些模式的含义,并找到它们在解决自己实际工作中遇到的设计问题的潜在作用。要求学生们思考自己在什么地方用到过这个模式,是否曾用其他的替代方法达到了同样的设计目的。我努力让我的学生们相信:要想真正深入理解一个设计模式,就必须探究其细节,并根据自己过去的经验和当前设计需要,考虑清楚如何具体应用这个模式。比如Composite模式,最开始是依靠类来实现的——这本书写作时,大规模使用接口的语言还没出现。但时至今日,没有问题,Composite仍然是一个有效的设计思想,只不过你有了更多的具体实现办法。我想努力让学生们明白,这本书是为那些真正喜欢思考,而不是只想盲目地粘贴复制代码的人准备的。同时,思想需要实践的检验,并需根据时代和你使用的编程语言、框架作出正确选择。

 

       面世15年后,《设计模式》对今天的软件开发者仍有很大的吸引力。今年夏天,我在网上说我有几本《设计模式》可以送人,几小时内被一抢而空。这就是社会媒体的威力!不过可能更能解释其原因的是这些设计模式本身。我珍藏了那些现在还津津乐道自己拥有这本经典的人发给我的邮件。

 

【本文转自《程序员》2009年12月刊 特别专题:设计模式15年 

/Rebecca Wirfs-Brock /罗小平

 

作者简介:Rebecca Wirfs-Brock对象技术大师,面向对象设计技术的先驱,职责驱动设计(Responsibility-Driven Design, RDD)方法创始人。她在1990年出版的”Designing Object-Oriented Software”是最早的面向对象设计书籍之一(该书中译本《面向对象软件设计经典》已于20039月由电子工业出版社出版),书中清晰阐述了“类”、“职责”、“协作”这些我们今天耳熟能详的概念,提出职责驱动设计的方法。她在Object Design: Roles, Responsibilities, and Collaborations (Addison Wesley - November, 2002)【对象设计:角色、职责和协作】一书中很好地融合了其对CRC卡、协作(Collaborations)和灵活性(Flexibility)这些主题的见解。

   

【作者:刘伟   http://blog.csdn.net/lovelion

 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值