國內目前能夠找到的有關設計模式的書按照出版時間排列有以下幾本(含點評):
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的例子來學習,會讓思路更清晰,學習效果更好。