設計模式總結

2021-08-25 17:31:18 字數 1903 閱讀 9666

之前閱讀了《headfirst 設計模式》這本書。簡要的做乙個總結。

裝飾者——包裝乙個物件,以提供新的行為。

狀態——封裝了基於狀態的行為,並使用委託在行為之間切換。

迭代器——在物件的集合之中遊走,而不暴露集合的實現。

外觀——簡化一群類的介面。

策略——封裝可以互換的行為,並使用委託來決定使用哪乙個。

**——包裝物件,以控制對此物件的訪問。

工廠方法——由子類決定要建立的具體類時哪乙個。

介面卡——封裝物件,並提供不同的介面。

觀察者——讓物件能夠在狀態改變時被通知。

模板方法——由子類決定如何實現乙個演算法中的步驟。

組合——客戶用一致的方式處理物件集合和單個物件。

單件——確保有且只有乙個物件被建立。

抽象工廠——允許客戶建立物件的家族,而無需指定它們的具體類。

在大多數的類目中,模式通常根據某種做法被歸為幾類。最廣為人知的分類方式,就是第乙個模式類目中所採用的方式,根據模式的目標分成三個不同的類目:建立型、行為型和結構型。

建立型:建立型模式涉及到將物件例項化,這類模式都提供乙個方法,將客戶從所需要例項化的物件中解耦。

行為型:只要是行為型模式,都涉及到類和物件如何互動及分配職責。

結構型:結構型模式可以讓你把類或物件組合到更大的結構中。

建立型:singleton、builder、prototype、abstract factoryfactory method

結構型:decoratorproxycompositefacade、flyweight、bridge、adapter

行為型:mediator、visitor、template methoditeratorcommand、memento、interpreter、observer、chain of resonsibility、statestrategy

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...

設計模式總結

模式相關的描述 裝飾者 包裝乙個物件,以提供新的行為 狀態 封閉了基於狀態的行為,並使用委託在行為之間切換 迭代器 在物件的集合之間遊走,而不暴露集合的實現 外觀 簡化一群類的介面 策略 封閉可以互換的行為,並使用委託來決定要使用哪乙個 包裝物件,以控制對此物件的訪問 工廠方法 由子類來決定要建立的...

設計模式總結

這類模式的特質是管理物件的建立過程。通常設計總是以使用工廠方法開始,當設計者發現需要更大的靈活性時,設計會向其它建立型模式演化。工廠方法模式 單例模式 抽象工廠方法模式 建造者模式 原型模式 簡單工廠模式 這類模式從程式的結構上解決模組之間的耦合問題。介面卡模式 裝飾模式 橋接模式 組合模式 享元模...