(一) 建立型模式
singleon模式:解決的是實體物件個數的問題。除了singleton之外,其它建立型模式解決的都是new所帶來的耦合關係。
factory method 、absract factory 、builder都需要乙個額外的工廠類來負責例項化「易變物件」,而protorty則是通過原型(乙個特殊的工廠類)來轉殖「易變物件」。
通常如果遇到「易變類」,超初的設計都是從factory method開始,當遇到更多的複雜變化時,再考慮重構為其他三種工廠模式。
(二)結構型模式
adaper模式:注重轉換介面,將不吻合的介面適配物件。
bridge模式:注重分離介面與其實現,支援多維度變化。
composite模式:注重統一介面,將「一對多」的關係轉化為「一對一」的關係。
decorator模式:注重穩定介面,在此前提下為物件擴充套件功能。
facade模式:注重簡化介面,簡化元件系統與外部客戶程式的依賴關係。
flyweight模式:注重保留介面,在內部使用。在內部使用共享技術對物件在儲存進行優化。
proxy模式:注重假借介面,增加間接層來實現靈活控制。
(三)行為型模式
template method模式:封裝演算法結構,支援算法子步驟變化.
stragegy 模式:注重封裝演算法,支援演算法的變化。
memento模式:注重封裝物件狀態的變化,支援狀態的儲存、恢復。
mediator模式:注重封裝物件間的變互,支援物件互動的變化。
chainofresponsibility模式:注重封裝物件責任,支援責任的變化。
command模式:注重將請求封裝為物件,支援請求的變化。
iterator模式:注重封裝集合物件內部變化,支援集合的變化。
interpreter模式:注重封裝特定領域變化,支援領域問題的頻繁變化。例如字串的模式匹配。
observer模式:注重封裝物件通知,支援通訊物件的變化。
visitor模式:注重封裝物件操作變化,支援在執行時為類層次結構動態新增新的操作。
設計模式 總結篇
大話設計模式 終於到了總結這一天,這本書主要講述了 個設計模式和六大原則。而六大原則卻是這 個設計模式的核心。每個模式都遵從一種或幾種原則,所以在此針對六大原則進行了相關總結。單一職責原則 定義 導致類變更的原因,應該僅有乙個。通俗的說,即乙個類只負責一項職責。說到單一職責原則,很多大鳥都會不屑一顧...
設計模式學習筆記(總結篇 模式分類)
gof根據模式的目標將模式分為三個類目 建立型 行為型和結構型。建立型模式設計物件的例項化,這類模式的特點是,不讓使用者依賴於物件的建立或排列方式,避免使用者直接使用new運算子建立物件。gof的 23中模式中的下列 5種模式屬於建立型模式 1 工廠方法模式 定義乙個用於建立物件的介面,讓子類決定例...
C語言和設計模式(總結篇)
設計模式的書相信很多人都看過。對於設計模式這樣一種方法,相信不同的人有不同的理解。我在這裡寫的部落格只是我個人對設計模式的粗淺認識。文中肯定存在很多的不足和不成熟之處,希望朋友們諒解。望大家多多指正,謝謝!01 c語言和設計模式 繼承 封裝 多型 02 c語言和設計模式 訪問者模式 03 c語言和設...