設(shè)計(jì)模式

什么是設(shè)計(jì)模式北滥?

設(shè)計(jì)模式(Design pattern)是一套被反復(fù)使用刚操、多數(shù)人知曉的、經(jīng)過(guò)分類編目的再芋、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)菊霜。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解济赎、保證代碼可靠性鉴逞。

 java一共有23種設(shè)計(jì)模式

 總體來(lái)說(shuō)設(shè)計(jì)模式分為三大類:

 創(chuàng)建型模式,共五種:工廠方法模式司训、抽象工廠模式构捡、單例模式、建造者模式壳猜、原型模式勾徽。

 結(jié)構(gòu)型模式,共七種:適配器模式统扳、裝飾器模式捂蕴、代理模式、外觀模式闪幽、橋接模式、組合模式涡匀、享元模式盯腌。

 行為型模式,共十一種:策略模式陨瘩、模板方法模式腕够、觀察者模式、迭代器模式舌劳、責(zé)任鏈模式帚湘、命令模式、備忘錄模式甚淡、狀態(tài)模式大诸、訪問(wèn)者模式、中介者模式贯卦、解釋器模式资柔。

簡(jiǎn)單的介紹一下這些設(shè)計(jì)模式

一、Singleton撵割,單例模式:保證一個(gè)類只有一個(gè)實(shí)例贿堰,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn) 。

二啡彬、Abstract Factory羹与,抽象工廠模式:提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口故硅,而無(wú)須指定它們的具體類。

三纵搁、Factory Method吃衅,工廠方法模式:定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類诡渴,F(xiàn)actory Method使一個(gè)類的實(shí)例化延遲到了子類捐晶。

四、Builder妄辩,建造者模式:將一個(gè)復(fù)雜對(duì)象的構(gòu)建與他的表示相分離惑灵,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。

五眼耀、Prototype英支,原型模式:用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過(guò)拷貝這些原型來(lái)創(chuàng)建新的對(duì)象哮伟。

六干花、Iterator,迭代器模式:提供一個(gè)方法順序訪問(wèn)一個(gè)聚合對(duì)象的各個(gè)元素楞黄,而又不需要暴露該對(duì)象的內(nèi)部表示池凄。

七、Observer鬼廓,觀察者模式:定義對(duì)象間一對(duì)多的依賴關(guān)系肿仑,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知自動(dòng)更新碎税。

八尤慰、Template Method,模板方法模式:定義一個(gè)操作中的算法的骨架雷蹂,而將一些步驟延遲到子類中伟端,TemplateMethod使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可以重定義該算法得某些特定步驟。

九匪煌、Command责蝠,命令模式:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可以用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化萎庭,對(duì)請(qǐng)求排隊(duì)和記錄請(qǐng)求日志玛歌,以及支持可撤銷的操作。

十擎椰、State支子,狀態(tài)模式:允許對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變他的行為。對(duì)象看起來(lái)似乎改變了他的類达舒。

十一值朋、Strategy叹侄,策略模式:定義一系列的算法,把他們一個(gè)個(gè)封裝起來(lái)昨登,并使他們可以互相替換趾代,本模式使得算法可以獨(dú)立于使用它們的客戶。

十二丰辣、China of Responsibility撒强,職責(zé)鏈模式:使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的送發(fā)者和接收者之間的耦合關(guān)系 笙什。

十三飘哨、Mediator,中介者模式:用一個(gè)中介對(duì)象封裝一些列的對(duì)象交互琐凭。

十四芽隆、Visitor,訪問(wèn)者模式:表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作统屈,它使你可以在不改變各元素類的前提下定義作用于這個(gè)元素的新操作胚吁。

十五、Interpreter愁憔,解釋器模式:給定一個(gè)語(yǔ)言腕扶,定義他的文法的一個(gè)表示,并定義一個(gè)解釋器吨掌,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子蕉毯。

十六、Memento思犁,備忘錄模式:在不破壞對(duì)象的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài)进肯,并在該對(duì)象之外保存這個(gè)狀態(tài)激蹲。

十七、Composite江掩,組合模式:將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示部分整體的關(guān)系学辱,Composite使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。

十八环形、Facade策泣,外觀模式:為子系統(tǒng)中的一組接口提供一致的界面,fa?ade提供了一高層接口抬吟,這個(gè)接口使得子系統(tǒng)更容易使用萨咕。

十九、Proxy火本,代理模式:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn) 危队。

二十聪建、Adapter,適配器模式:將一類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,Adapter模式使得原本由于接口不兼容而不能一起工作那些類可以一起工作茫陆。

二十一金麸、Decrator,裝飾器模式:動(dòng)態(tài)地給一個(gè)對(duì)象增加一些額外的職責(zé)簿盅,就增加的功能來(lái)說(shuō)挥下,Decorator模式相比生成子類更加靈活。

二十二桨醋、Bridge棚瘟,橋接模式:將抽象部分與它的實(shí)現(xiàn)部分相分離,使他們可以獨(dú)立的變化讨盒。

二十三解取、Flyweight,享元模式:運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象返顺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末禀苦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子遂鹊,更是在濱河造成了極大的恐慌振乏,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秉扑,死亡現(xiàn)場(chǎng)離奇詭異慧邮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)舟陆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門误澳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人秦躯,你說(shuō)我怎么就攤上這事忆谓。” “怎么了踱承?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵倡缠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我茎活,道長(zhǎng)昙沦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任载荔,我火速辦了婚禮盾饮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己丐谋,他們只是感情好芍碧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著号俐,像睡著了一般泌豆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吏饿,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天踪危,我揣著相機(jī)與錄音,去河邊找鬼猪落。 笑死贞远,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笨忌。 我是一名探鬼主播蓝仲,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼官疲!你這毒婦竟也來(lái)了袱结?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤途凫,失蹤者是張志新(化名)和其女友劉穎垢夹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體维费,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡果元,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了犀盟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片而晒。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖阅畴,靈堂內(nèi)的尸體忽然破棺而出倡怎,到底是詐尸還是另有隱情,我是刑警寧澤恶阴,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站豹障,受9級(jí)特大地震影響冯事,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜血公,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一昵仅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦摔笤、人聲如沸够滑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至命辖,卻和暖如春况毅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尔艇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工尔许, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人终娃。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓味廊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親棠耕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子余佛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • 設(shè)計(jì)模式匯總 一、基礎(chǔ)知識(shí) 1. 設(shè)計(jì)模式概述 定義:設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用昧辽、多...
    MinoyJet閱讀 3,939評(píng)論 1 15
  • 設(shè)計(jì)模式基本原則 開(kāi)放-封閉原則(OCP)衙熔,是說(shuō)軟件實(shí)體(類、模塊搅荞、函數(shù)等等)應(yīng)該可以拓展红氯,但是不可修改。開(kāi)-閉原...
    西山薄涼閱讀 3,792評(píng)論 3 14
  • 本文是《設(shè)計(jì)模式——可復(fù)用面對(duì)對(duì)象軟件的基礎(chǔ)》的筆記咕痛。 面對(duì)對(duì)象設(shè)計(jì)的幾個(gè)原則:1.針對(duì)接口編程痢甘,而不是針對(duì)實(shí)現(xiàn)編...
    Lension閱讀 1,193評(píng)論 0 0
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情茉贡,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式塞栅。簡(jiǎn)單...
    舟漁行舟閱讀 7,750評(píng)論 2 17
  • 一、設(shè)計(jì)模式的分類 總體來(lái)說(shuō)設(shè)計(jì)模式分為三大類: 創(chuàng)建型模式腔丧,共五種:工廠方法模式放椰、抽象工廠模式、單例模式愉粤、建造者...
    RamboLI閱讀 749評(píng)論 0 1