java-23種設(shè)計(jì)模式概述【軟件設(shè)計(jì)模式基本介紹(是什么乱陡、作用、優(yōu)點(diǎn))仪壮、模式的分類和介紹】


一憨颠、設(shè)計(jì)模式基本介紹(是什么、作用积锅、優(yōu)點(diǎn))

1爽彤、軟件設(shè)計(jì)模式是什么?

軟件設(shè)計(jì)模式(Software Design Pattern)缚陷,又稱設(shè)計(jì)模式适篙。


2、設(shè)計(jì)模式的作用

★ 提高代碼的可復(fù)用性箫爷、可維護(hù)性嚷节、穩(wěn)健性聂儒、安全性和可讀性。


3硫痰、學(xué)習(xí)設(shè)計(jì)模式的意義

★ 設(shè)計(jì)模式的本質(zhì)是面向?qū)ο笤O(shè)計(jì)原則的實(shí)際運(yùn)用衩婚,是對(duì)類的封裝性、繼承性和多態(tài)性以及類的關(guān)聯(lián)關(guān)系和組合關(guān)系的充分理解碍论。


4谅猾、軟件設(shè)計(jì)模式的最關(guān)鍵的4個(gè)基本要素:

模式名稱問(wèn)題(描述了該模式的應(yīng)用環(huán)境鳍悠,即何時(shí)使用該模式税娜。)、解決方案藏研、效果敬矩。


5、使用設(shè)計(jì)模式優(yōu)點(diǎn):

(1)可以提高程序員的思維能力蠢挡、編程能力和設(shè)計(jì)能力弧岳。
(2)使程序設(shè)計(jì)更加標(biāo)準(zhǔn)化、代碼編制更加工程化业踏,使軟件開(kāi)發(fā)效率大大提高禽炬,從而縮短軟件的開(kāi)發(fā)周期。
(3)使設(shè)計(jì)的代碼可重用性高勤家、可讀性強(qiáng)腹尖、可靠性高、靈活性好伐脖、可維護(hù)性強(qiáng)热幔。



二、模式的分類和介紹

1讼庇、模式的分類:根據(jù)目的來(lái)绎巨,創(chuàng)建型模式、結(jié)構(gòu)型模式蠕啄、行為型模式

■ 創(chuàng)建型模式(5種场勤,單例、原型歼跟、工廠方法和媳、抽象工廠、建造者)嘹承;

■ 結(jié)構(gòu)型模式(7種窗价,代理、適配器叹卷、橋接撼港、裝飾坪它、外觀、享元帝牡、組合)往毡;

■ 行為型模式(11種,模板方法靶溜、策略开瞭、命令、職責(zé)鏈罩息、狀態(tài)嗤详、觀察者、中介者瓷炮、迭代器葱色、訪問(wèn)者、備忘錄娘香、解釋器)


2苍狰、模式的介紹

■ 創(chuàng)建型模式:描述了“怎樣創(chuàng)建對(duì)象”,主要特點(diǎn)是“將對(duì)象的創(chuàng)建與使用分離”烘绽。

(1) 單例(Singleton)模式:某個(gè)類只能生成一個(gè)實(shí)例淋昭,該類提供了一個(gè)全局訪問(wèn)點(diǎn)供外部獲取該實(shí)例,其拓展是有限多例模式安接。

(2) 原型(Prototype)模式:將一個(gè)對(duì)象作為原型翔忽,通過(guò)對(duì)其進(jìn)行復(fù)制而克隆出多個(gè)和原型類似的新實(shí)例。

(3)工廠方法(Factory Method)模式:定義一個(gè)用于創(chuàng)建產(chǎn)品的接口赫段,由子類決定生產(chǎn)什么產(chǎn)品呀打。

(4)抽象工廠(Abstract Factory)模式:提供一個(gè)創(chuàng)建產(chǎn)品族的接口矢赁,其每個(gè)子類可以生產(chǎn)一系列相關(guān)的產(chǎn)品糯笙。

(5)建造者(Builder)模式:將一個(gè)復(fù)雜對(duì)象分解成多個(gè)相對(duì)簡(jiǎn)單的部分,然后根據(jù)不同需要分別創(chuàng)建它們撩银,最后構(gòu)建成該復(fù)雜對(duì)象给涕。


■ 結(jié)構(gòu)型模式:描述了如何將類或?qū)ο蟀茨撤N布局組成更大的結(jié)構(gòu)。

(1)代理(Proxy)模式:為某對(duì)象提供一種代理以控制對(duì)該對(duì)象的訪問(wèn)额获。即客戶端通過(guò)代理間接地訪問(wèn)該對(duì)象(真實(shí)對(duì)象)够庙,從而限制、增強(qiáng)或修改該對(duì)象的一些特性抄邀。

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

(3)橋接(Bridge)模式:將抽象與實(shí)現(xiàn)分離境肾,使它們可以獨(dú)立變化剔难。它是用組合關(guān)系代替繼承關(guān)系來(lái)實(shí)現(xiàn)胆屿,從而降低了抽象和實(shí)現(xiàn)這兩個(gè)可變維度的耦合度。

(4)裝飾(Decorator)模式:動(dòng)態(tài)的給對(duì)象增加一些職責(zé)偶宫,即增加其額外的功能非迹。

(5)外觀(Facade)模式:為多個(gè)復(fù)雜的子系統(tǒng)提供一個(gè)一致的接口,使這些子系統(tǒng)更加容易被訪問(wèn)纯趋。

(6)享元(Flyweight)模式:運(yùn)用共享技術(shù)來(lái)有效地支持大量細(xì)粒度對(duì)象的復(fù)用憎兽。

(7)組合(Composite)模式:將對(duì)象組合成樹(shù)狀層次結(jié)構(gòu),使用戶對(duì)單個(gè)對(duì)象和組合對(duì)象具有一致的訪問(wèn)性吵冒。


■ 行為型模式:用于描述類或?qū)ο笾g怎樣相互協(xié)作共同完成單個(gè)對(duì)象都無(wú)法單獨(dú)完成的任務(wù)纯命,以及怎樣分配職責(zé)

(1)模板方法(Template Method)模式:定義一個(gè)操作中的算法骨架痹栖,而將算法的一些步驟延遲到子類中扎附,使得子類可以不改變?cè)撍惴ńY(jié)構(gòu)的情況下重定義該算法的某些特定步驟。

(2)策略(Strategy)模式:定義了一系列算法结耀,并將每個(gè)算法封裝起來(lái)留夜,使它們可以相互替換,且算法的改變不會(huì)影響使用算法的客戶图甜。

(3)命令(Command)模式:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象碍粥,使發(fā)出請(qǐng)求的責(zé)任和執(zhí)行請(qǐng)求的責(zé)任分割開(kāi)。

(4)職責(zé)鏈(Chain of Responsibility)模式:把請(qǐng)求從鏈中的一個(gè)對(duì)象傳到下一個(gè)對(duì)象黑毅,直到請(qǐng)求被響應(yīng)為止嚼摩。通過(guò)這種方式去除對(duì)象之間的耦合。

(5)狀態(tài)(State)模式:允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)發(fā)生改變時(shí)改變其行為能力矿瘦。

(6)觀察者(Observer)模式:多個(gè)對(duì)象間存在一對(duì)多關(guān)系枕面,當(dāng)一個(gè)對(duì)象發(fā)生改變時(shí),把這種改變通知給其他多個(gè)對(duì)象缚去,從而影響其他對(duì)象的行為潮秘。

(7)中介者(Mediator)模式:定義一個(gè)中介對(duì)象來(lái)簡(jiǎn)化原有對(duì)象之間的交互關(guān)系,降低系統(tǒng)中對(duì)象間的耦合度易结,使原有對(duì)象之間不必相互了解枕荞。

(8)迭代器(Iterator)模式:提供一種方法來(lái)順序訪問(wèn)聚合對(duì)象中的一系列數(shù)據(jù),而不暴露聚合對(duì)象的內(nèi)部表示搞动。

(9)訪問(wèn)者(Visitor)模式:在不改變集合元素的前提下躏精,為一個(gè)集合中的每個(gè)元素提供多種訪問(wèn)方式,即每個(gè)元素有多個(gè)訪問(wèn)者對(duì)象訪問(wèn)鹦肿。

(10)備忘錄(Memento)模式:在不破壞封裝性的前提下矗烛,獲取并保存一個(gè)對(duì)象的內(nèi)部狀態(tài),以便以后恢復(fù)它箩溃。

(11)解釋器(Interpreter)模式:提供如何定義語(yǔ)言的文法瞭吃,以及對(duì)語(yǔ)言句子的解釋方法碌识,即解釋器。



? 參考文獻(xiàn):《軟件設(shè)計(jì)模式(java版)---程細(xì)柱》




寫(xiě)在后面的話

?????? 如果你覺(jué)得一樂(lè)的文章給您帶來(lái)了一些收獲虱而,可以給個(gè)三連?? 筏餐,一樂(lè)會(huì)一如既往地更新有價(jià)值的博客。如果文章存在錯(cuò)誤牡拇,也歡迎大家指出魁瞪。還有,如果大家有什么好的學(xué)習(xí)技巧惠呼、學(xué)習(xí)感悟导俘,也非常歡迎大家在評(píng)論區(qū)一起交流~

最后感謝大家的支持,謝謝~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剔蹋,一起剝皮案震驚了整個(gè)濱河市旅薄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泣崩,老刑警劉巖少梁,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異矫付,居然都是意外死亡凯沪,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)买优,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)妨马,“玉大人,你說(shuō)我怎么就攤上這事杀赢『娑澹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵脂崔,是天一觀的道長(zhǎng)滤淳。 經(jīng)常有香客問(wèn)我,道長(zhǎng)脱篙,這世上最難降的妖魔是什么娇钱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任伤柄,我火速辦了婚禮绊困,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘适刀。我一直安慰自己秤朗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布笔喉。 她就那樣靜靜地躺著取视,像睡著了一般硝皂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上作谭,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天稽物,我揣著相機(jī)與錄音,去河邊找鬼折欠。 笑死贝或,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锐秦。 我是一名探鬼主播咪奖,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼酱床!你這毒婦竟也來(lái)了羊赵?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扇谣,失蹤者是張志新(化名)和其女友劉穎昧捷,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體罐寨,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡料身,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衩茸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芹血。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖楞慈,靈堂內(nèi)的尸體忽然破棺而出幔烛,到底是詐尸還是另有隱情,我是刑警寧澤囊蓝,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布饿悬,位于F島的核電站,受9級(jí)特大地震影響聚霜,放射性物質(zhì)發(fā)生泄漏狡恬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一蝎宇、第九天 我趴在偏房一處隱蔽的房頂上張望弟劲。 院中可真熱鬧,春花似錦姥芥、人聲如沸兔乞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)庸追。三九已至霍骄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淡溯,已是汗流浹背读整。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咱娶,地道東北人绘沉。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像豺总,于是被迫代替她去往敵國(guó)和親车伞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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

  • 重新理解財(cái)富:完成12次認(rèn)知升級(jí) 我們來(lái)對(duì)整個(gè)專欄做一次復(fù)盤(pán): 你學(xué)習(xí)的第一個(gè)模塊叫做:理解財(cái)富喻喳,在這個(gè)模塊中另玖,我...
    f8e0aa5c8708閱讀 4,052評(píng)論 1 14
  • 作者 賈寒蕻金瓶梅:被忽略的名著 我對(duì)于《金瓶梅》的最初印象是來(lái)自于初高中的時(shí)候。那個(gè)時(shí)候《看天下》雜志總會(huì)刊登一...
    賈寒蕻閱讀 918評(píng)論 2 3
  • 中國(guó)開(kāi)征房地產(chǎn)稅的目的:金融風(fēng)險(xiǎn)控制表伦,財(cái)富分配公平谦去。 第一,房地產(chǎn)稅是一種長(zhǎng)期宏觀調(diào)控手段蹦哼,是房地產(chǎn)“長(zhǎng)效機(jī)制”的...
    tyx田閱讀 164評(píng)論 0 0
  • 你覺(jué)得溝通重要嗎鳄哭?你認(rèn)為什么樣的溝通是有效溝通呢? 1.學(xué)會(huì)拒絕纲熏,鍛煉自己的心力妆丘。 2.在生活中把溝通對(duì)象當(dāng)作智者...
    莫忘小寒閱讀 175評(píng)論 0 1
  • 【寶山區(qū)】關(guān)于開(kāi)展2021年度寶山區(qū)新引進(jìn)優(yōu)秀人才安居資助申報(bào)工作的通知 根據(jù)《寶山區(qū)新引進(jìn)優(yōu)秀人才安居資助辦法》...
    知產(chǎn)圈李老師閱讀 142評(píng)論 0 0