設計模式分三種型別,共23種:
所有設計模式的實現都遵循的一條原則,即「找出程式中變化的地方,並將變化封裝起來」。
建立型模式,有
靜態工廠模式(factory pattern)靜態方法返回例項
抽象工廠模式(abstract factory pattern)介面方式返回例項
建造者模式(builder pattern)每次返回多個例項
單例模式(singleton pattern)類只有乙個例項
原型模式(prototype pattern)實現icloneable介面
結構型模式,
介面卡模式(adapter pattern)不想實現每個介面
橋接模式(bridge pattern)給橋設定某個例項,用橋呼叫例項方法
過濾器模式(filter、criteria pattern)按條件過濾集合
組合模式(composite pattern)樹結構, 包含父節點和子節點
裝飾器模式(decorator pattern)給方法加點裝飾
外觀模式(facade pattern)computer與cpu, memory關係
享元模式(flyweight pattern)類似threadpool管理執行緒?
**模式(proxy pattern)無法修改某個方法, 繼承該類擴充套件該方法
行為型模式,
責任鏈模式(chain of responsibility pattern)接收者包含另乙個接收者的引用,如果乙個物件不能處理該請求,那麼它會把相同的請求傳給下乙個接收者
命令模式(command pattern)資料驅動, 以命令的形式包裹在物件中,並傳給呼叫物件
直譯器模式(interpreter pattern)實現了乙個表示式介面,該介面解釋乙個特定的上下文 這種模式被用在 sql 解析、符號處理引擎等
迭代器模式(iterator pattern)實現集合類, iterator
中介者模式(mediator pattern)降低多個物件和類之間的通訊複雜性,這種模式提供了乙個中介類,該類通常處理不同類之間的通訊,並支援松耦合,使**易於維護
備忘錄模式(memento pattern)備份乙個資料, 後面可以還原回來
觀察者模式(observer pattern)委託方法呼叫
狀態模式(state pattern)根據狀態呼叫不同的方法
空物件模式(null object pattern)在空狀態的預設行為
策略模式(strategy pattern)add, substract類實現calculator介面, 用乙個輔助類實現計算
模板模式(template pattern)抽象類用1個seal方法呼叫其它虛方法, 虛方法在子類實現
訪問者模式(visitor pattern)通過accept(visitor)方法接受visitor呼叫自己的方法
其他的解釋,大致意思是相同的。
裝飾者模式:動態的將責任加在物件上。
工廠方法模式:定義建立物件的介面,由子類決定具體例項化的類是哪乙個。
注:工廠方法和抽象工廠的區別:工廠方法使用的是繼承,抽象工廠使用的是組合。抽象工廠中每乙個建立介面都可使用工廠方法模式。
單例模式:確保乙個類只有乙個例項,並提供乙個全域性訪問點。
命令模式:將請求封裝成物件,以便使用不同的請求、佇列或者日誌來引數化其它物件。命令模式也支援可撤銷的操作。
介面卡模式:將乙個類的介面,轉換為客戶期望的另乙個類的介面。讓原本介面不相容的類可以合作無間。
注:物件介面卡使用的是組合,類介面卡使用的是繼承。
外觀模式:提供乙個統一的訪問介面,用來訪問子系統的一群介面。
模板方法模式:在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法能夠使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。
迭代器模式:提供一種方法順序訪問乙個聚合物件中的各個元素,而又不暴露其內部表示。
組合模式:允許你將物件組合成樹形結構來表現「整體/部分」層次結構。
狀態模式:允許物件在內部狀態改變的時改變他的行為,物件看起來好像修改了它的類。
設計模式速記
根據設計模式英文名稱首字母總結了一下,供初學者使用 建立型 psbf 可簡記為 ps了乙個boy friend 依次是prototype,singleton,builder,factory系列 結構型 abcdffp 記憶 abcde f fg p 依次是adapter,bridge,composi...
設計模式速記
建立型模式 靜態工廠模式 factory pattern 靜態方法返回例項 抽象工廠模式 abstract factory pattern 介面方式返回例項 建造者模式 builder patwww.cppcns.comtern 每次返回多個例項 單例模式 singleton pattern 類只有...
常見設計模式速記
之前面試的時候被問到有關設計模式的東西,當時沒了解多少,隨口敷衍了幾句,說了幾個常見的 單例 工廠 介面卡。面試失敗之後,我專門去查了相關的資料,總算是知道了常見的設計模式,但是這些模式也太多了,足足二十多種,怎麼記憶?根據我自己的總結,用這兩種方法應該能夠幫助記憶 簡單工廠 抽象工廠 工廠方法 單...