實話設計模式:GOF《設計模式》不適合作為初學者入門讀物

張恂發表於2009-02-26

設計模式的重要性毋庸多言,每一位有經驗的程式設計師都應該熟練掌握設計模式的原理和應用。學習和掌握設計模式,可以說既簡單,又困難。如果學習方法對頭,掌握了科學的思維(其中最重要的應該是抽象思維和邏輯思維)方法和學習方法,那麼學會熟練地運用設計模式就很簡單;如果學習方法不對頭,那麼就會越學越複雜,老也看不懂,不會用,不敢用。

如果你因為讀了大名鼎鼎的《設計模式》這本書,就覺得 Design Patterns 很難、很深奧、很難掌握,這完全是一種誤解。實話實說,著名的四博士 15 年前的那本《設計模式》並不適合作為初學者的入門讀物。學習設計模式應該可以有一種更簡單、更輕鬆、更快捷的方式。所以,除了向大師致敬以外,這也是我想寫《大道至簡:實話設計模式》這本免費公開網路書的一個原因。

實話:GoF 的《設計模式》不適合作為初學者學習設計模式和 OOD 的入門讀物。

凡提 Design Patterns,人們必會從 GoF 設計模式談起。GoF(Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四位博士)的里程碑著作《設計模式》無疑是一本軟體工程史上劃時代的經典名著,設計模式的開山之作。過去 15 年來它一直被國內外的專業和非專業人士反覆地引用、宣講、解析和解讀,導致詮釋、演繹 GoF 設計模式的各類佳作也層出不窮,出現了百舸爭流、捨我其誰的喜人局面。

然而將近 15 年過去了,當代軟體工程無論在 OOD 的理念和方法,還是在 OO 程式語言、實現技術等方面都有了許多顯著的進步和發展,《設計模式》中的許多內容已顯得老舊。從與時俱進的角度看,我們覺得它不適合作為 21 世紀設計模式初學者的入門讀物或教材,它更適合作為一部經典技術歷史文獻供有經驗的程式設計師、軟體工程師和專家們進行參考、研究和收藏。

為什麼說《設計模式》不適合作為初級程式設計師學習的入門教材,我想可能有很多原因。首先,貫穿全書的例項主要圍繞一個文件編輯器的開發,還有不少地方介紹的是更為抽象、難懂的文法解釋和處理,而如今國內大多數程式設計師可能都工作在 IT 應用和系統開發領域,包括企業應用、行業資訊化、網際網路/Web 應用開發等等,估計很少有人會再去從頭開發文件編輯器,因而書中的這些應用案例往往不易為普通讀者,尤其是初學者所理解和熟悉。

此外,書中的實現程式碼、舉例也主要採用了現在許多年輕程式設計師所不熟悉的 Smalltalk 和 C++ 等上世紀 80、90 年代流行的舊版本 OO 程式語言。而近十年來一批更為成熟和高階的當代 OO 程式語言(如 Java、C#、VB.NET 等等)和建模技術(如 UML)已經得到了非常廣泛的應用,同時也出現了一批相當成熟的主流 OO 框架、重用庫和應用開發技術平臺,如 .NET Framework、Struts、Spring、JSF 等等。在這些框架、平臺中,就大量使用了許多經典和創新的設計模式。如果一本設計模式的入門讀物能夠結合這些當代的程式語言、技術、框架和平臺及其應用進行介紹,必然會增加不少時效性和可讀性。

以上列舉的這些情況,無疑都增加了《設計模式》這部經典的閱讀理解難度。簡而言之,儘管 GoF《設計模式》中的 OO 軟體設計原理、原則和思想精髓可能永不過時,但是書中的許多內容和例子確實離大家的日常工作有點遠,如果初學者拿這本書作為學習教材或入門讀物難免讓人有舍易求難、舍簡求繁之感。

張恂

本文的最新版在

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13633641/viewspace-557949/,如需轉載,請註明出處,否則將追究法律責任。

相關文章