設(shè)計模式開篇

目錄

  • 為什么要寫設(shè)計模式系列
  • 學(xué)設(shè)計模式之前氮发,必學(xué) UML
  • 設(shè)計模式概覽
  • 創(chuàng)建型模式(Creational Pattern)
  • 結(jié)構(gòu)型模式(Structural Pattern)
  • 行為型模式(Behavioral Pattern)

為什么要寫設(shè)計模式系列

設(shè)計模式這玩意平日里讓我思緒萬千搂妻,可真要提起筆來卻顧頭顧尾滋觉、不得要義。于是乎就有了書寫設(shè)計模式系列的想法驳遵,一來是徹頭徹尾的歸納總結(jié)一遍,二來也希望盡自己力量生產(chǎn)一些“不那么糟糕”的產(chǎn)物。

整篇文集收錄將會逐步增加羞福,直至經(jīng)典的23種設(shè)計模式全部完成。并且在23種模式徹底定稿前蚯涮,我會定期的回顧之前書寫的內(nèi)容治专,力求做到寫出的東西不給別人帶來困擾。也非常歡迎您通過評論遭顶、私信等方式為文章勘誤张峰。

學(xué)設(shè)計模式之前,先學(xué) UML

學(xué)設(shè)計模式之前液肌,需先學(xué)習(xí)UML 中的類圖挟炬。 能看懂類圖中各個類之間的線條、箭頭代表什么意思嗦哆,也就足夠應(yīng)對日常的工作和交流谤祖。這時我們就能將類圖所表達(dá)的含義和最終的代碼對應(yīng)起來。 UML 知識將是我們學(xué)習(xí)設(shè)計模式的基礎(chǔ)設(shè)施老速。

可以參考我整理的UML類圖文章粥喜,或者直接 Google 。

設(shè)計模式概覽

創(chuàng)建型模式(Creational Pattern)

創(chuàng)建型模式對類的實例化過程進(jìn)行了抽象橘券,能夠?qū)④浖K中對象的創(chuàng)建對象的使用分離额湘。為了使軟件的結(jié)構(gòu)更加清晰,外界對于這些對象只需要知道它們共同的接口旁舰,而不清楚其具體的實現(xiàn)細(xì)節(jié)锋华,使整個系統(tǒng)的設(shè)計更加符合單一職責(zé)原則

名稱CN. 名稱EN. 模式本質(zhì) 重要程度 文章鏈接
簡單工廠模式 Simple Factory 選擇實現(xiàn) ???????? 前往查看
工廠方法模式 Factory Method 延遲到子類來選擇實現(xiàn) ?????????? 前往查看
抽象工廠模式 Abstract Factory 選擇產(chǎn)品簇 ?????????? 前往查看
建造者模式 Builder 部件構(gòu)造 ???? 前往查看
單例模式 Singleton 控制實例數(shù)目 ???????? 等待完善
原型模式 Prototype 克隆生成對象 ?????? 前往查看

結(jié)構(gòu)型模式(Structural Pattern)

結(jié)構(gòu)型模式描述如何將類或者對象結(jié)合在一起形成更大的結(jié)構(gòu)箭窜。就像搭積木毯焕,可以通過簡單積木的組合形成復(fù)雜的、功能更為強(qiáng)大的結(jié)構(gòu)磺樱。

結(jié)構(gòu)型模式可以分為:

  • 類結(jié)構(gòu)型模式 —— 在類結(jié)構(gòu)型模式中一般只存在繼承關(guān)系和實現(xiàn)關(guān)系纳猫。
  • 對象結(jié)構(gòu)型模式 —— 對象結(jié)構(gòu)型模式關(guān)心類與對象的組合,通過關(guān)聯(lián)關(guān)系使得在一 個類中定義另一個類的實例對象竹捉,然后通過該對象調(diào)用其方法芜辕。
名稱CN. 名稱EN. 模式本質(zhì) 重要程度 文章鏈接
適配器模式 Adapter 轉(zhuǎn)化匹配,復(fù)用功能 ???????? 前往查看
裝飾模式 Decorate 動態(tài)組合 ?????? 前往查看
橋接模式 Bridge 分離抽象與實現(xiàn) ?????? 等待完善
外觀模式 Facade 封裝交互块差,簡化調(diào)用 ?????????? 前往查看
享元模式 Flyweight 分離與共享細(xì)粒度對象 ?? 前往查看
組合模式 Composite 葉子與組合對象 ???????? 前往查看
代理模式 Proxy 控制對象訪問 ???????? 前往查看

行為型模式(Behavioral Pattern)

行為型模式是對在不同的對象之間劃分責(zé)任和算法的抽象化侵续。行為型模式不僅僅關(guān)注類和對象的結(jié)構(gòu)倔丈,而且重點關(guān)注它們之間的相互作用。

行為型模式分為類行為型模式對象行為型模式兩種:

  • 類行為型模式:類的行為型模式使用繼承關(guān)系在幾個類之間分配行為状蜗,類行為型模式主要通過多態(tài)等方式來分配父類與子類的職責(zé)乃沙。
  • 對象行為型模式:對象的行為型模式則使用對象的聚合關(guān)聯(lián)關(guān)系來分配行為,對象行為型模式主要是通過對象關(guān)聯(lián)等方式來分配兩個或多個類的職責(zé)诗舰。
名稱CN. 名稱EN. 模式本質(zhì) 重要程度 文章鏈接
命令模式 Command 封裝命令 ???????? 前往查看
狀態(tài)模式 State 分離狀態(tài)警儒,選擇實現(xiàn) ?????? 前往查看
策略模式 Strategy 分離算法,選擇實現(xiàn) ???????? 前往查看
中介模式 Mediator 封裝交互 ???? 等待完善
觀察者模式 Observer 觸發(fā)聯(lián)動 ?????????? 前往查看
職責(zé)鏈模式 Chain of Responsibility 分離職責(zé)眶根,動態(tài)組合 ?????? 前往查看
迭代器模式 Iterator 控制訪問聚合對象中的元素 ?????????? 前往查看
備忘錄模式 Memento 保存和恢復(fù)內(nèi)部狀態(tài) ???? 等待完善
解釋器模式 Interpreter 分離實現(xiàn)蜀铲,解釋執(zhí)行 ?? 等待完善
訪問者模式 Visitor 預(yù)留通路,回調(diào)實現(xiàn) ?? 等待完善
模板方法模式 Template Method 固定算法骨架 ?????? 等待完善

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末属百,一起剝皮案震驚了整個濱河市记劝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌族扰,老刑警劉巖厌丑,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異渔呵,居然都是意外死亡怒竿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門扩氢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耕驰,“玉大人,你說我怎么就攤上這事录豺‰猓” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵双饥,是天一觀的道長媒抠。 經(jīng)常有香客問我,道長咏花,這世上最難降的妖魔是什么趴生? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮迟螺,結(jié)果婚禮上冲秽,老公的妹妹穿的比我還像新娘舍咖。我一直安慰自己矩父,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布排霉。 她就那樣靜靜地躺著窍株,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上球订,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天后裸,我揣著相機(jī)與錄音,去河邊找鬼冒滩。 笑死微驶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的开睡。 我是一名探鬼主播因苹,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼篇恒!你這毒婦竟也來了扶檐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤胁艰,失蹤者是張志新(化名)和其女友劉穎款筑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腾么,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡奈梳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了解虱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颈嚼。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖饭寺,靈堂內(nèi)的尸體忽然破棺而出阻课,到底是詐尸還是另有隱情,我是刑警寧澤艰匙,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布限煞,位于F島的核電站,受9級特大地震影響员凝,放射性物質(zhì)發(fā)生泄漏署驻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一健霹、第九天 我趴在偏房一處隱蔽的房頂上張望旺上。 院中可真熱鬧,春花似錦糖埋、人聲如沸宣吱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽征候。三九已至杭攻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疤坝,已是汗流浹背兆解。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留跑揉,地道東北人锅睛。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像历谍,于是被迫代替她去往敵國和親衣撬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,665評論 2 354

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

  • 設(shè)計模式匯總 一扮饶、基礎(chǔ)知識 1. 設(shè)計模式概述 定義:設(shè)計模式(Design Pattern)是一套被反復(fù)使用具练、多...
    MinoyJet閱讀 3,939評論 1 15
  • 設(shè)計模式是一套被反復(fù)使用的、多數(shù)人知曉的甜无、經(jīng)過分類編目的扛点、代碼設(shè)計經(jīng)驗的總結(jié)。所學(xué)知識是從網(wǎng)絡(luò)上學(xué)習(xí)總結(jié)岂丘、設(shè)計到自...
    shh_閱讀 412評論 0 13
  • 震驚!小豬的設(shè)計模式初涉總結(jié)寨蹋!純干貨~ 標(biāo)簽: 知識點總結(jié) 描述性文字 今年一月初有了離職的念頭后松蒜,就盤算著把設(shè)計...
    coder_pig閱讀 1,096評論 0 24
  • 為什么需要面相對象 在歷史進(jìn)程中,我們由面相對象編程轉(zhuǎn)向了面相對象編程已旧,項目的規(guī)模也變得越來越大秸苗,其中有著必然的需...
    leaf_eater閱讀 294評論 0 0
  • 因為機(jī)緣巧合,今天有幸聽到了阿噶巴?洛桑大師關(guān)于《改變的力量》的講座运褪,受益匪淺惊楼,結(jié)合我自己的理解在此做個分享...
    朱芊聿閱讀 300評論 2 1