国内目前能够找到的有关设计模式的书按照出版时间排列有以下几本(含点评):
GoF的《设计模式》1994年英文版出版,2000.09中文版出版
大师之作,经典作品,言简意赅,归纳充分。可惜中文版翻译质量很低,有些句子不通顺,好像是机器翻译的,有个别难译的句子干脆没有翻译(如Chain of responsibility一章的适用性一节的and the handler isn't known a priori.这一句就没有翻译),另外代码是C++的,较难懂;还有就是出版时间较早,实例代码对于如今国内的应用开发不大实用。《Java与模式》2002.10出版
国人早期的设计模式的书籍,勇气可嘉,但是头几章试图用中国的传统文化阐述设计模式的道理,让人感到云里雾里的,加深了对设计模式的神秘感,很快就打消了阅读的念头《Head First设计模式》2004.10英文版,2007.09中文版
开创了设计模式通俗读物的先河,老外们很喜欢,中文版翻译得也不错,用Java写的代码,但是感觉其中的例子(比如披萨的制作)不大和国人的胃口,另外有些人不喜欢书里卡通的风格《大话设计模式》2007.12出版
开创了国内设计模式通俗读物的先河,用C#写的代码,感觉其中一些例子不大实用和贴切,比如学雷锋和追女孩。《设计模式之禅》2010.03出版
行文活泼,深入浅出,引人入胜,包含了大量的和较新的使用Java灵活运用设计模式的经验,用Java写的代码,代码短小精悍,但有些例子不大实用和贴切,如女娲造人。《研磨设计模式》2010.11出版
文风相对来说较严谨,同样包含了大量的和较新的使用Java灵活运用设计模式的经验,用Java写的代码,代码更多地取材于实际的项目,更加实用。
设计模式的学习成本较高,在有限的时间里,感觉使用下面的方法能够最大限度的加快学习的步伐(适用于Java程序员):
- 先通读《设计模式之禅》,打消设计模式的神秘感,读完后,有时间,还可以阅读《研磨设计模式》
- 再阅读GoF的《设计模式》(有条件可以直接阅读英文版),可以不关注其中C++的代码,而主要关注该书对各种模式的概念上的介绍和归纳对比,特别关注第一章引言,每个设计模式的意图、适用性、结构类图、时序图、参与者、协作、效果和相关模式,第六章结论,图1-1设计模式之间的关系,1.6.7节导致重新设计的一般原因归纳,表1-2设计模式所支持的设计的可变方面的归纳,1.7怎样选择设计模式,1.8怎样使用设计模式。
- 再利用《设计模式之禅》或《研磨设计模式》的相关Java实例代码,结合GoF的结构类图,找出Java代码中的参与者,便于记忆
总之,用GoF对于设计模式概念的论述和归纳,结合《设计模式之禅》和《研磨设计模式》的Java的例子来学习,会让思路更清晰,学习效果更好。