設(shè)計模式第二篇-分類

一砾赔、設(shè)計模式按目的來分,主要分為3個類型——創(chuàng)建型董瞻、行為型和結(jié)構(gòu)型卷仑。?

1) 創(chuàng)建型: 主要是用來處理對象的創(chuàng)建過程峻村,分為以下幾種:

01.單例模式(Singleton)

一個類有且僅有一個實例,并且自行實例化向整個系統(tǒng)提供锡凝。

02.抽象工廠(Abstract Factory)

提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口粘昨,而無須指定它們的具體類。

03.工廠方法(Factory Method)

定義一個創(chuàng)建對象的工廠接口窜锯,將實際創(chuàng)建工作推遲到子類當中张肾。

04.建造模式(Builder)

將一個復(fù)雜對象的構(gòu)建與他的表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示锚扎。

05.原型模式(Prototype)

2)?行為型(對類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊熯M行描述)


06.迭代器模式(Iterator)

提供一個方法順序訪問一個聚合對象的各個元素吞瞪,而又不需要暴露該對象的內(nèi)部表示。

07.觀察者模式(Observer)

定義對象間一對多的依賴關(guān)系驾孔,當一個對象的狀態(tài)發(fā)生改變時芍秆,所有依賴于它的對象都得到通知自動更新。

08.模板方法(Template Method)

定義一個操作中的算法的骨架翠勉,而將一些步驟延遲到子類中妖啥,使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義算法中的某些步驟。

09.命令模式(Command)

將一個請求封裝為一個對象对碌,從而使你可以用不同的請求對客戶進行參數(shù)化荆虱,對請求排隊和記錄請求日志,以及支持可撤銷的操作朽们。

10.狀態(tài)模式(State)

允許對象在其內(nèi)部狀態(tài)改變時改變他的行為怀读,對象看起來似乎改變了他的類。

11.策略模式(Strategy)

定義一系列的算法骑脱,把他們一個個封裝起來菜枷,并使他們可以互相替換,讓算法獨立于使用它的客戶而獨立變化惜姐。

12.責任鏈模式(Chain of Responsibility)

使多個對象都有機會處理請求犁跪,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。

13.中介者模式(Mediator)

用一個中介對象封裝一系列的對象交互歹袁。

14.訪問者模式(Visitor)

表示一個作用于某對象結(jié)構(gòu)中的各元素的操作坷衍,它使你可以在不改變各元素類的前提下定義作用于這個元素的新操作。

15.解釋器模式(Interpreter)

給定一個語言条舔,定義他的文法的一個表示枫耳,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子孟抗。

16.備忘錄模式(Memento)

在不破壞封閉的前提下迁杨,捕獲一個對象的內(nèi)部狀態(tài)钻心,并在該對象之外保存這個狀態(tài)。

3) 結(jié)構(gòu)型(處理類或者對象的組合)?

17.組合模式(Composite)

將對象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu)铅协,使得用戶對單個對象和組合對象的使用具有一致性捷沸。

18.外觀模式(Facade)

為子系統(tǒng)中的一組接口提供一致的界面,定義一個高層接口狐史,這個接口使得子系統(tǒng)更容易使用痒给。

19.代理模式(Proxy)

為其他對象提供一種代理以控制對這個對象的訪問。

20.適配器模式(Adapter)

將一類的接口轉(zhuǎn)換成客戶希望的另外一個接口骏全,使得原本由于接口不兼容而不能一起工作那些類可以一起工作苍柏。

21.裝飾者模式(Decorator)

通過創(chuàng)建一個包裝對象來包裹真實的對象,實現(xiàn)在不改變原類文件和使用繼承的情況下姜贡,動態(tài)地擴展一個對象的功能试吁。

22.橋接模式(Bridge)

將抽象部分與它的實現(xiàn)部分相分離,使他們可以獨立的變化楼咳。

23.享元模式(Flyweight)

用來盡可能減少內(nèi)存使用量以及分享資訊給盡可能多的相似物件熄捍。

二、總結(jié)

? ? ?1爬橡、以上是對設(shè)計模式使用場景的分類治唤,具體的設(shè)計模式棒动,會在日后的章節(jié)中說明舉例糙申,也會按照 創(chuàng)建型、行為型船惨、結(jié)構(gòu)型這三個分類來逐一講解設(shè)計模式的柜裸,有的設(shè)計模塊我也在學(xué)習(xí)中,歡迎大家一起交流粱锐。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疙挺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子怜浅,更是在濱河造成了極大的恐慌铐然,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恶座,死亡現(xiàn)場離奇詭異搀暑,居然都是意外死亡,警方通過查閱死者的電腦和手機跨琳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門自点,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脉让,你說我怎么就攤上這事桂敛」ε冢” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵术唬,是天一觀的道長薪伏。 經(jīng)常有香客問我,道長粗仓,這世上最難降的妖魔是什么毅该? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮潦牛,結(jié)果婚禮上眶掌,老公的妹妹穿的比我還像新娘。我一直安慰自己巴碗,他們只是感情好朴爬,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橡淆,像睡著了一般召噩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逸爵,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天具滴,我揣著相機與錄音,去河邊找鬼师倔。 笑死构韵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的趋艘。 我是一名探鬼主播疲恢,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓷胧!你這毒婦竟也來了显拳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤搓萧,失蹤者是張志新(化名)和其女友劉穎杂数,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘸洛,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡揍移,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了货矮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羊精。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喧锦,到底是詐尸還是另有隱情读规,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布燃少,位于F島的核電站束亏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阵具。R本人自食惡果不足惜碍遍,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阳液。 院中可真熱鬧怕敬,春花似錦、人聲如沸帘皿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹰溜。三九已至虽填,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間曹动,已是汗流浹背斋日。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留墓陈,地道東北人恶守。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像跛蛋,于是被迫代替她去往敵國和親熬的。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 設(shè)計模式匯總 一赊级、基礎(chǔ)知識 1. 設(shè)計模式概述 定義:設(shè)計模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 3,939評論 1 15
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,965評論 6 13
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法岔绸,類相關(guān)的語法理逊,內(nèi)部類的語法,繼承相關(guān)的語法盒揉,異常的語法晋被,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • 本文是《設(shè)計模式——可復(fù)用面對對象軟件的基礎(chǔ)》的筆記。 面對對象設(shè)計的幾個原則:1.針對接口編程刚盈,而不是針對實現(xiàn)編...
    Lension閱讀 1,193評論 0 0
  • 請從我的夢里消失 或者 永遠不再離開
    七月京城閱讀 306評論 3 2