《設(shè)計模式:可復(fù)用面向?qū)ο筌浖A(chǔ)》
這本書還沒看完,但是絕對是案頭必備,雖然用C++寫的代碼,并且是四個牛人寫的風(fēng)格(相關(guān)知識背景與程序員不同),但是一旦開始理解設(shè)計模式以后,再回過頭會發(fā)現(xiàn)這本書的定義和描述最容易理解和記憶。
《Head First設(shè)計模式》
自學(xué)、初學(xué)的推薦用書。我也是通過這本書才真正明白設(shè)計模式。雖然,GoF提出了23個模式,但是,只要把主要幾個搞明白了,就算入門了,其他的模式只有真正實踐的時候才會需要,否則看了也就是了解一下。
《Java與模式》
十年前,我絕對認為是本好書。因為那個時候可以參考的中國人寫的設(shè)計模式的書實在太少,但是現(xiàn)在我對這本書的評價只能算可以了。因為作者的舉例跟我的項目經(jīng)驗沒有重疊,作者對古典文學(xué)的運用反而又給我理解設(shè)計模式增加了困難,因此這本書不再作為我推薦的書,只作為看完《Head First設(shè)計模式》后的補充閱讀,并且不需要太關(guān)注書中的代碼和那些文學(xué)描述,只看作者關(guān)于模式與實際應(yīng)用的描述就可以了。
《設(shè)計模式解析》
這本書不推薦。除非你有過一些設(shè)計模式的理解,并且還有實際項目的設(shè)計經(jīng)驗,否則這本書對初學(xué)的幫助不是很大。我的感覺作者應(yīng)該是用來作為自己上課的教材,因此這本書除非可以跟著作者邊學(xué)邊讀,否則自學(xué)會覺得只講了些理念上的東西,能夠幫助理解模式的項目或者代碼是不足的。
《設(shè)計模式初學(xué)者指南》
第三次放棄讀這本書,主要是對我不太實用,而且作者的思路也與我不同,讀起來不太順暢。每次重讀個幾次才明白作者想表達什么,作者是個好程序員,寫的代碼也非常漂亮,只是比較關(guān)注細節(jié)和自我實現(xiàn)過程中的理解,對于經(jīng)常寫代碼的Java程序員可能幫助會更多些,對于只是想了解概念和思路就顯得有點啰嗦了。
《設(shè)計模式之禪》
《Head First設(shè)計模式》已經(jīng)看懂,《Java與模式》已經(jīng)讀完,設(shè)計模式的基本概念已經(jīng)明白,Java的模板和枚舉編程也能正確理解。那么這本書可以用來鞏固對設(shè)計模式的理解。當然也可以跳過《Java與模式》先讀這本書,相對來說這本書還容易理解,代碼的質(zhì)量也好,特別是對模式實現(xiàn)的標準代碼(不是例子代碼),完全符合GoF書上的概念。通過對這本書的代碼閱讀和實踐,對于學(xué)習(xí)設(shè)計模式基本可以收關(guān)了,剩下的應(yīng)該就是在實踐中的應(yīng)用了。
補充:理解設(shè)計模式最好的方法就是項目與代碼,并且在不斷地重構(gòu)項目和代碼中加深理解。對于別的什么例子,看起來似乎對理解有幫助,但是聽多了只會更加糊涂。