一句話總結(jié)23種設(shè)計模式

1. 前言

斷斷續(xù)續(xù)寫了一段時間的設(shè)計模式,終于把經(jīng)典的23種設(shè)計模式全寫完了混滔。下面對這些設(shè)計模式總結(jié)一下广恢。

2. 設(shè)計原則

設(shè)計原則的介紹 : [設(shè)計模式的六大原則]
即使我們之前沒有專門看過這些原則绞愚,但是我們實際開發(fā)中或多或少都用到這些原則。實際上秧耗,這些原則的目的只有一個:降低對象之間的耦合,增加程序的可復(fù)用性舶治、可擴展性分井、可維護性。優(yōu)秀的設(shè)計模式就是基于這些原則去實現(xiàn)的霉猛。

3. 設(shè)計模式的分類

設(shè)計模式一般分為三類:創(chuàng)建型模式杂抽、結(jié)構(gòu)型模式、行為型模式韩脏。

3.1 創(chuàng)建型模式

創(chuàng)建型模式簡單來說就是用來創(chuàng)建對象的缩麸。一共有五種:單例模式、建造者模式赡矢、工廠方法模式杭朱、抽象工廠模式、原型模式吹散。
[單例模式] :確保某一個類只有一個實例弧械,并且提供一個全局訪問點。
[建造者模式]: 用來創(chuàng)建復(fù)雜的復(fù)合對象空民。
[工廠方法模式]:讓子類來決定要創(chuàng)建哪個對象刃唐。
[抽象工廠模式:創(chuàng)建多個產(chǎn)品族中的產(chǎn)品對象。
[原型模式]:通過復(fù)制原型來創(chuàng)建新對象界轩。

3.2 行為型模式

行為型模式主要是描述類或者對象是怎樣交互和怎樣分配職責(zé)的画饥。一共有十一種:策略模式、模板方法模式浊猾、觀察者模式抖甘、迭代器模式、責(zé)任鏈模式葫慎、命令模式衔彻、備忘錄模式薇宠、狀態(tài)模式、訪問者模式艰额、中介者模式澄港、解釋器模式。
[策略模式]:封裝不同的算法柄沮,算法之間能互相替換慢睡。
[狀態(tài)模式] :根據(jù)不同的狀態(tài)做出不同的行為。
[責(zé)任鏈模式] :將事件沿著鏈去處理铡溪。
[觀察者模式]:狀態(tài)發(fā)生改變時通知觀察者漂辐,一對多的關(guān)系。
[模板方法模式]:定義一套流程模板棕硫,根據(jù)需要實現(xiàn)模板中的操作髓涯。
[迭代器模式] :提供一種方法順序訪問一個聚合對象中的各個元素。
[備忘錄模式] :保存對象的狀態(tài)哈扮,在需要時進行恢復(fù)纬纪。
[訪問者模式] :穩(wěn)定數(shù)據(jù)結(jié)構(gòu)中,定義新的操作行為滑肉。
[中介者模式]:將網(wǎng)狀結(jié)構(gòu)轉(zhuǎn)變?yōu)樾切徒Y(jié)構(gòu)包各,所有行為都通過中介。
[解釋器模式] :定義語法靶庙,并對其進行解釋问畅。
[命令模式]:將請求封裝成命令,并記錄下來六荒,能夠撤銷與重做护姆。

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

結(jié)構(gòu)型模式主要是用于處理類或者對象的組合。一共有七種:適配器模式掏击、裝飾模式卵皂、代理模式、外觀模式砚亭、橋接模式灯变、組合模式、享元模式捅膘。
[代理模式] :控制客戶端對對象的訪問添祸。
[組合模式]:將整體與局部(樹形結(jié)構(gòu))進行遞歸組合,讓客戶端能夠以一種的方式對其進行處理篓跛。
[適配器模式] :將原來不兼容的兩個類融合在一起膝捞。
[裝飾者模式] :為對象添加新功能。
[享元模式] :使用對象池來減少重復(fù)對象的創(chuàng)建愧沟。
[外觀模式] :對外提供一個統(tǒng)一的接口用來訪問子系統(tǒng)蔬咬。
[橋接模式]:將兩個能夠獨立變化的部分分離開來。

4. 其他設(shè)計模式

另外沐寺,除了這23種經(jīng)典的設(shè)計模式林艘,還涌現(xiàn)出其他的一些新的設(shè)計模式,比如:規(guī)格模式混坞、對象池模式狐援、雇工模式、黑板模式和空對象模式等等究孕。后面有時間的話也會對這些模式進行分析啥酱。

5.最后

雖然設(shè)計模式是個好東西,能夠給我們帶來各種好處厨诸,比如降低對象之間的耦合镶殷,增加程序的可復(fù)用性、可擴展性微酬、可維護性等等绘趋。

但是我們也不應(yīng)該濫用設(shè)計模式,設(shè)計模式在一定程序上會增加系統(tǒng)的復(fù)雜性颗管。我們在寫碼時應(yīng)該評估好各方面陷遮,避免過度設(shè)計。

另外垦江,設(shè)計模式的各種角色也不是固定不變的帽馋,根據(jù)實際需要,我們可以適當(dāng)?shù)倪M行改動比吭。Android的源碼在這方面的改動就比較多茬斧。

由于上面那23種經(jīng)典的設(shè)計模式提出來的時間也比較久了,一些設(shè)計模式梗逮,比如解釋器模式项秉,在我們的實際開發(fā)中基本上用不到,了解一下就可以了慷彤。同時娄蔼,隨著語言和技術(shù)的發(fā)展,有些模式可能已經(jīng)過時底哗。所以岁诉,我們要緊跟時代的發(fā)展。

End

順便在此給大家推薦一個Java方面的交流學(xué)習(xí)群:4112676跋选,里面會分享一些高級面試題涕癣,還有資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis前标,Netty源碼分析坠韩,高并發(fā)距潘、高性能、分布式只搁、微服務(wù)架構(gòu)的原理音比,JVM性能優(yōu)化這些成為架構(gòu)師必備的知識體系,主要針對Java開發(fā)人員提升自己氢惋,突破瓶頸洞翩,相信你來學(xué)習(xí),會有提升和收獲焰望。在這個群里會有你需要的內(nèi)容 朋友們請抓緊時間加入進來吧

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骚亿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子熊赖,更是在濱河造成了極大的恐慌来屠,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秫舌,死亡現(xiàn)場離奇詭異的妖,居然都是意外死亡,警方通過查閱死者的電腦和手機足陨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門嫂粟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人墨缘,你說我怎么就攤上這事星虹。” “怎么了镊讼?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵宽涌,是天一觀的道長。 經(jīng)常有香客問我蝶棋,道長卸亮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任玩裙,我火速辦了婚禮兼贸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吃溅。我一直安慰自己溶诞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布决侈。 她就那樣靜靜地躺著螺垢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上枉圃,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天功茴,我揣著相機與錄音,去河邊找鬼讯蒲。 笑死痊土,一個胖子當(dāng)著我的面吹牛肄扎,可吹牛的內(nèi)容都是我干的墨林。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼犯祠,長吁一口氣:“原來是場噩夢啊……” “哼旭等!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起衡载,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤搔耕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后痰娱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弃榨,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年梨睁,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲸睛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡坡贺,死狀恐怖官辈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遍坟,我是刑警寧澤拳亿,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站愿伴,受9級特大地震影響肺魁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜隔节,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一鹅经、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧官帘,春花似錦瞬雹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春胖缤,著一層夾襖步出監(jiān)牢的瞬間尚镰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工哪廓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狗唉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓涡真,卻偏偏與公主長得像分俯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哆料,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,974評論 2 355

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

  • 1. 前言 斷斷續(xù)續(xù)寫了一段時間的設(shè)計模式缸剪,終于把經(jīng)典的23種設(shè)計模式全寫完了。下面對這些設(shè)計模式總結(jié)一下东亦。 2....
    四月葡萄閱讀 8,532評論 1 40
  • 鏈接:https://github.com/WiKi123/DesignPattern作者: WiKi123(gi...
    樹懶啊樹懶閱讀 3,517評論 0 2
  • 設(shè)計模式匯總 一杏节、基礎(chǔ)知識 1. 設(shè)計模式概述 定義:設(shè)計模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 3,947評論 1 15
  • 創(chuàng)建型模式 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計模式之一典阵。這種類型的設(shè)...
    隔墻送來秋千影閱讀 2,669評論 0 11
  • 在微信群里奋渔,有人問道:脫貧與脫單孰輕孰重?一些人就不約而同回復(fù)壮啊,脫貧重要嫉鲸!沒錯,在精準扶貧工作里他巨,我清楚看到很多家...
    傅筱筱閱讀 392評論 2 2