牽模式的手 《模式的樂趣》閱讀筆記

2022-08-28 21:00:22 字數 1262 閱讀 8918

很顯然,從一開始我並未想到這樣薄薄的一本書竟然配我走過兩個多月的時光,而且讓我時時激起購買它的慾望(現在我還是遵循「書非借不能讀」的古訓)。想起那天和decland談起《designpattern》,他感慨於該書scholar氣息太濃,sample太少。現在我也有同感了。的確《designpattern》太過於嚴謹,對於oo的新手來說缺少親近它的慾望。而這本小冊子,則很能成為閱讀《designpattern》的輔助讀物,像筵席外的乙份零食。

「簡而言之,模式也是世界上出現的一種事物,其規則告訴我們如何建立這種事物,以及何時必須建立它。它既是過程,也是事物;既是對存在的事物的描述,也是對建立這種事物的過程的描述。——alexander[1979]」

「對於軟體來說,演算法、資料結構是基本構件,模式也是,甚至更像是定義演算法和資料結構的模具」

「模式的乙個主要目標就是,以一種別人容易接受的方式,捕捉那些重複出現的問題的解決方案(以及可以使用這些解決方案的約束和場景)」,從語義表達角度,模式所能傳達的資訊更多,更精密。這也是其難於掌握的原因。像情侶間乙個細微的眼神,如果沒有日日夜夜的廝守,是無法達到的。

「每一種模式都應該是對其他模式的補充。每增加一種模式都應該讓系統更加強壯。這樣的系統可以不斷發展,且不會增加維護的壓力,也不會降低整個系統的效能——系統增大後通常會導致這種結果。我們希望建立乙個各部分互為補充的框架,希望每乙個新增的部分都能讓其他部分更加強壯」

「模式不會存在於真空中。實際上,模式不僅依賴於其自身,而且依賴於整個體系結構中所有其他模式。每種模式本身都由相互依賴的其他成分組成」。模式更像軟體的社會化屬性,在良好模式設計的系統中,眾多簡單物件合同協作,完成複雜任務。可見,模式可以由人的管理模式進行對映。善於了解模式的人一定也是善於發現社會協同機制的人。

「沒有經驗的開發人員常常不理解設計與實現之間的區別,所以這些習慣語法就成了他們表達設計思想的唯一途徑」「如果你唯一的工具是錘子,你就會把所有的東西都當作釘子」

「模式是不依賴於程式語言的(與之相反的習慣語法是程式語言特有的)。從某種程度上講,模式構成了一種語言,它比程式語言更進了一步,使開發人員可以彼此交流設計思想。……模式本身超越了任何具體的語言,這絕不是要忽視選擇程式語言的重要性,只是希望你認識到,程式語言不應該限制我們提供有價值的技術的能力」

「當乙個人從事設計活動時,他的行為完全受當時他心中已有模式語言的支配。當然,隨著經驗的增長,每個人心目中的模式語言都會隨著時間而變化。但是,在必須做出設計決定的那個特定時刻,他要完全依賴在此之前他已經積累的模式語言。不論他的設計多麼小或多麼複雜,他的設計活動將完全受他心目中已有的模式以及他將這些模式組合新的設計的能力的支配——alexander[1979]」

模式的樂趣

任何乙個新專案,從已經就位的幾件標準的事情開始 1 一套編碼準則,有效的工具,符號規則等等.2 模式課程的介紹,以確保小組中的每個人都能夠理解模式以及相關術語.3 跟蹤設計評審和附加培訓,確保開發人員正確應用.文件 系統開發中最大的麻煩的事情就是建立良好並且有意義的文件.找到系統將來的變化點 只有當...

大話設計模式閱讀筆記 裝飾模式

1.裝飾模式 decorator 動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。component 是定義乙個物件介面,可以給這些物件動態的新增職責,concretecomponent是定義了乙個具體的物件,也可以給這個物件新增一些職責。decorator,裝飾抽象...

大話設計模式閱讀筆記 外觀模式

外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。uml圖 適用場合 這要分三個階段來說,首先,在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層架構,就需要考慮在資料訪問層和業務邏輯層 業務邏輯層和表示層的層...