之前閱讀了《headfirst 設計模式》這本書。簡要的做乙個總結。
裝飾者——包裝乙個物件,以提供新的行為。
狀態——封裝了基於狀態的行為,並使用委託在行為之間切換。
迭代器——在物件的集合之中遊走,而不暴露集合的實現。
外觀——簡化一群類的介面。
策略——封裝可以互換的行為,並使用委託來決定使用哪乙個。
**——包裝物件,以控制對此物件的訪問。
工廠方法——由子類決定要建立的具體類時哪乙個。
介面卡——封裝物件,並提供不同的介面。
觀察者——讓物件能夠在狀態改變時被通知。
模板方法——由子類決定如何實現乙個演算法中的步驟。
組合——客戶用一致的方式處理物件集合和單個物件。
單件——確保有且只有乙個物件被建立。
抽象工廠——允許客戶建立物件的家族,而無需指定它們的具體類。
在大多數的類目中,模式通常根據某種做法被歸為幾類。最廣為人知的分類方式,就是第乙個模式類目中所採用的方式,根據模式的目標分成三個不同的類目:建立型、行為型和結構型。
建立型:建立型模式涉及到將物件例項化,這類模式都提供乙個方法,將客戶從所需要例項化的物件中解耦。
行為型:只要是行為型模式,都涉及到類和物件如何互動及分配職責。
結構型:結構型模式可以讓你把類或物件組合到更大的結構中。
建立型:singleton、builder、prototype、abstract factory、factory method
結構型:decorator、proxy、composite、facade、flyweight、bridge、adapter
行為型:mediator、visitor、template method、iterator、command、memento、interpreter、observer、chain of resonsibility、state、strategy
oo基礎
1、抽象 2、封裝 3、多型 4、繼承
oo原則
1、封裝變化
2、多用組合,少用繼承
3、針對介面程式設計,不針對實現程式設計
4、為互動物件之間的松耦合設計而努力
5、類應該對擴充套件開發,對修改關閉。
6、依賴抽象,不要依賴具體類。
7、只和朋友談
8、別找我,我會去找你
9、類應該只有乙個改變的理由
要點
1、讓設計模式自然而然地出現在你的設計中,而不是為了使用而使用。
2、設計模式並非僵化的教條;你可以依據自己的需要採用或調整。
3、總是使用滿足需要的最簡單解決方案,不管它用不用模式。
4、學習設計模式的類目,可以幫你自己書序這些模式以及它們之間的關係。
5、模式的分類(或類目)是將模式分成不同的族群,如果這麼做對你有幫助,就採用吧!
6、你必須相當專注才能夠成為乙個模式的作家:這需要時間也需要耐心,同事還必須樂意做大量的精化工作。
7、請牢記:你所遇到大多數的模式都是現有模式的變體,而非新的模式。
8、模式能夠為你帶來的最大好處之一是:讓你的團隊擁有共享詞彙。
9、任何社群都有自己的行話,模式社群也是如此。別讓這些行話絆著,在讀完這本書之後,你已經能夠應用大部分的行話了。
設計模式總結
http www.chenjiliang.com article view.aspx?articleid 6708 比較 設計模式 常用程度 適用層次 引入時機 結構複雜度 abstract factory 比較常用 應用級設計時 比較複雜 builder 一般 級 編碼時一般 factory me...
設計模式總結
模式相關的描述 裝飾者 包裝乙個物件,以提供新的行為 狀態 封閉了基於狀態的行為,並使用委託在行為之間切換 迭代器 在物件的集合之間遊走,而不暴露集合的實現 外觀 簡化一群類的介面 策略 封閉可以互換的行為,並使用委託來決定要使用哪乙個 包裝物件,以控制對此物件的訪問 工廠方法 由子類來決定要建立的...
設計模式總結
這類模式的特質是管理物件的建立過程。通常設計總是以使用工廠方法開始,當設計者發現需要更大的靈活性時,設計會向其它建立型模式演化。工廠方法模式 單例模式 抽象工廠方法模式 建造者模式 原型模式 簡單工廠模式 這類模式從程式的結構上解決模組之間的耦合問題。介面卡模式 裝飾模式 橋接模式 組合模式 享元模...