14

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

 3 years ago
source link: https://blog.csdn.net/lovelion/article/details/11909707
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

reprint.png
LoveLion 2013-09-22 22:49:33 articleReadEyes.png 5712

       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”是最早的面向对象设计书籍之一(该书中译本《面向对象软件设计经典》已于2003年9月由电子工业出版社出版),书中清晰阐述了“类”、“职责”、“协作”这些我们今天耳熟能详的概念,提出职责驱动设计的方法。她在Object Design: Roles, Responsibilities, and Collaborations (Addison Wesley - November, 2002)【对象设计:角色、职责和协作】一书中很好地融合了其对CRC卡、协作(Collaborations)和灵活性(Flexibility)这些主题的见解。

20130922224831765  20130922224844718  20130922224841171

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK