作為設計模式推演的序章,我們以一本書中的例子為序:
我們有一些基本的設計原則,復用+易用,
有oo 5p設計原則:isp 介面隔離原則, lsp黎克特制替換原則,ocp 開閉原則,srp單一職責原則,dip抽象依賴倒置原則
我們也有oo工具,封裝,繼承,多型
最後也有基本的設計模式,各種工廠方法,command模式等
下面我們以數學中的代數為例子,介紹一下這三者的關係:
a. 基本的設計原則就像是是代數中的基本運算法則,加法交換律、結合律等
b. 封裝、繼承、多型只是基於這些基本法則推演出來的性質,如提取公因式,合併同類項等。(當然,受限於實際使用的程式語言,有些性質無法使用。這裡,一般的oo語言,對封裝、繼承、多型這三項還是支援的)
c. 設計模式,就是在提取公因式、合併同型別等基礎上,進一步推演,得到完全平方公式,平方差公式等更高階的公式。
誠如你在中學數學中所體會到的,熟悉完全平方公式、平方差公式有助你快速解決一大類問題,但是也總有一些問題,是這些公式所不能適用的,必須運用更基礎的代數知識去解決。例如你在解決某個問題時,可能會運用基礎的代數知識推演得到乙個類似於平方差公式的立方差公式。顯然,問題的關鍵不在於立方差公式的適用性,而在於你是如何自然而然的得到了乙個立方差公式?這就是本文下面要闡述的,如何基於基本的代數運算法則(基本設計原則),得到各類公式(設計模式)。
設計模式攻略 序
關於出發點 從開始接觸設計模式到現在也有4年多了,大小著作,文章也翻了很多,心得體會的記錄卻半點沒留下。說到心得,不是吹,還真有些,腦袋裡實在憋多了難受,忍不住拿出來曬曬吧。當然,這個方向可參考資料也確實太多了,我這點花花腸子也翻不出啥新花樣了,所以大家大可不必當學習資料來看,相反,以評判,討論的心...
《軟體設計精要與模式》推薦序三
微軟mvp infoq中文站.net社群首席編輯 朱永光 很早就在上拜讀過張逸的文章,尤其對他在設計模式方面的經驗和見解印象深刻。在我把他邀請進infoq中文站編輯團隊後,經過深入而頻繁的交流,對他在整個.net方面的學識和實踐甚感佩服。尤其佩服於他深厚的文學功底,其能用優雅的文字把生澀枯燥的技術解...
《軟體設計精要與模式》推薦序三
微軟mvp infoq中文站.net社群首席編輯 朱永光 很早就在上拜讀過張逸的文章,尤其對他在設計模式方面的經驗和見解印象深刻。在我把他邀請進infoq中文站編輯團隊後,經過深入而頻繁的交流,對他在整個.net方面的學識和實踐甚感佩服。尤其佩服於他深厚的文學功底,其能用優雅的文字把生澀枯燥的技術解...