關於設計模式的評論

2009年是設計模式 出版15年之際,程序員雜誌2009.12推出了設計模式15年特別專題。一些關於設計模式的評論摘抄如下:

設計模式提供了更高層次的抽象

軟件開發的的發展史,本質上是程序抽象層次隨軟件複雜度不斷提升。語言、方法、過程、或平臺都體現出這個趨勢。設計模式也是沿着這個路線出來的。

設計模式提供了更高層次的抽象。但是不容易在代碼中直觀的體現,所以要用UML這樣可視化圖形描述語言進行描述。

類、模式作爲軟件開發的基本抽象層而爲大家認爲是理所當然的。我們關注的重點,已經從局部抽象的本身轉移到不同抽象間的分解、協調、平衡和責任劃分上去了。

代碼中心論和設計中心論都是錯誤的,必須在兩者之間找到平衡點。

複雜的層次發生了變化

複雜的層次發生了變化。可複用軟件已經以工具包或者框架的形式,遷移到底層系統、語言中去了。絕大部分應該交給專家負責。對於大多數軟件開發者來說,學習設計模式的意義在於:1)應用於重構;2)有益於瞭解框架。

我們關注的重點轉移到了如何用模式表示自己的思想

GoF真正的貢獻在於對已有各種設計方法加以歸納、命名、定義和編目,清晰的列出一個包含23種設計模式的目錄。

在面向對象領域,我們苦苦追求的重用,現在看起來就像失敗的上帝。軟件庫、組件和框架沒有真正成爲軟件重用的及時。倒是設計本身、設計模式、設計思想實現了重用。我們關注的重點轉移到了如何用模式表示自己的思想。

要想真正理解一個模式,就必須深究其細節

要想真正理解一個模式,就必須深究其細節。根據過去的經驗,結合當前的設計需求,考慮清楚如何具體應用這個模式。

任何設計模式都只是工具

任何設計模式都只是工具,正確使用這些工具是程序員的職責。侷限性和適用性本身就是設計模式的一部分。

設計模式是語言缺陷的表現

設計模式是語言缺陷的表現?面向對象中的類給設計帶來了限制,設計模式是爲了解決面嚮對象語言的限制而產生的。表現力更強的高級語言,如函數式語言可以直接用語言的概念完成編程,消除編程模式。模式是一種人肉編譯器,用於解決複雜的問題,這是一種壞味。

其它

Erich Gamma, Richard Helm, and Ralph Johnson talk to Larry O'Brien about Design Patterns

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章