常用設計模式匯總

最近,我在看Head First設計模式。這本書寫的非常棒,讀的過程中總有“原來代碼還可以這樣設計”的感覺,對我有醍醐灌頂的功效,極力推薦大家閱讀看看。不過在讀完全書之后發現好多模式的概念和使用場景都忘了,或者已經記得不清晰了,為了方便日后的學習與記憶,在此進行了一番整理。

設計模式的六大原則:

1、單一職責原則(Single Responsibility Principle)
就一個類而言,應該僅有一個引起它變化的原因。簡單地說就是一個類只做一件事。
2、開閉原則(Open Close Principle)
開閉原則就是說對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼,實現一個熱插拔的效果。所以一句話概括就是:為了使程序的擴展性好,易于維護和升級。想要達到這樣的效果,我們需要使用接口和抽象類。
3、里氏代換原則(Liskov Substitution Principle)
里氏代換原則面向對象設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。 LSP是繼承復用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。里氏代換原則是對“開-閉”原則的補充。實現“開-閉”原則的關鍵步驟就是抽象化。而基類與子類的繼承關系就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規范。—— From Baidu 百科
4、依賴倒轉原則(Dependence Inversion Principle)
這個是開閉原則的基礎,具體內容:真對接口編程,依賴于抽象而不依賴于具體。
5、接口隔離原則(Interface Segregation Principle)
這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。還是一個降低類之間的耦合度的意思,從這兒我們看出,其實設計模式就是一個軟件的設計思想,從大型軟件架構出發,為了升級和維護方便。所以上文中多次出現:降低依賴,降低耦合。
6、迪米特法則(最少知道原則)(Demeter Principle)
為什么叫最少知道原則,就是說:一個實體應當盡量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立。

常用設計模式一覽:

名稱 定義 設計原則 例子
策略模式 定義算法族,分別封裝起來,讓他們之間可以互相替換,此模式讓算法的變化獨立于使用算法的客戶。 1.封裝變化。
2.多用組合,少用繼承。
3.針對接口編程,不針對實現編程。
策略模式1 <br /> <br /> 策略模式2
觀察者模式 在對象之間定義一對多的依賴,這樣一來當一個對象改變狀態,依賴它的對象都會收到通知,并自動更新。 為了交互對象之間的松耦合設計而努力。 觀察者模式
裝飾者模式 動態的將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。 對擴展開放,對修改關閉。 裝飾者模式
工廠方法模式 定義了一個創建對象的接口,但由子類決定要實例化的類是哪一個。工廠方法讓類把實例化推遲到子類。 依賴抽象,不要依賴具體類。(依賴倒置) 工廠方法模式1 <br /> <br /> 工廠方法模式2
抽象工廠模式 提供了一接口,用于創建相關或依賴對象的家族,而不需要明確指定具體類。 同上 抽象工廠模式
單例模式 確保一個類只有一個實例,并提供一個全局訪問點。 - 單例模式
命令模式 將請求封裝成對象,這可以讓你使用不同的請求,隊列,或者日志請求來參數化其他對象。命令模式也可以支持撤銷工作。 - 命令模式
適配器模式 將一個類的接口,轉換成客戶期望的另一個接口。適配器讓原本接口不兼容的類可以合作無間。 - 適配器模式
外觀模式 提供了一個統一的接口,用來訪問子系統中的一群接口。外觀定義了一個高層接口,讓子系統更容易使用。 最少知識原則(德墨忒爾法則):只和你的密友談話。 外觀模式 <br /> <br /> 注:適配器將一個對象包裝起來以改變其接口;裝飾者將一個對象包裝起來以增加新的行為和責任;而外觀將一群對象“包裝”起來以簡化其接口。
模板方法模式 在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。 好萊塢原則:別調用(打電話給)我們,我們會調用(打電話給)你。 模板方法模式
迭代器模式 提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露其內部的表示。 一個類應該只有一個引起變化的原因。 迭代器模式
組合模式 允許你將對象組成樹形結構來表現“整體/部分”的層次結構。組合能讓客戶以一致的方式處理個別對象和對象組合。 - 組合模式
狀態模式 允許對象在內部狀態改變時改變它的行為,對象看起來好像修改了它的類。 - 狀態模式
代理模式 為另一個對象提供一個替身或占位符以控制對這個對象的訪問。 - 靜態代理 <br /> <br /> 動態代理

思維導圖

design.png

圖片鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容

  • 設計模式之六大原則(轉載) 關于設計模式的六大設計原則的資料網上很多...
    霄霄霄霄閱讀 910評論 0 1
  • 前言 設計模式六大原則網上資料比較多比較亂,本文將網上的一些好的資料做一下整理,以便隨時翻閱。友情提示,設計模式雖...
    簡單的土豆閱讀 1,449評論 0 10
  • title: 設計模式簡介categories: 設計模式tags: 設計模式date: 2017-05-03 0...
    九命丿相柳閱讀 589評論 0 0
  • 本文集網絡上文章及自己coding和理解的結果而來,是設計模式學習的開篇。 本文介紹設計模式的一些概念,分類,和設...
    月落蝶殤閱讀 526評論 0 0
  • 設計模式之六大原則(轉載) 設計模式之六大原則(轉載) 關于設計模式的六大設計原則的資料網上很多,但是很多地方解釋...
    天涯人1196閱讀 336評論 0 0