設(shè)計(jì)模式幾種類型

設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐善茎,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用。

設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案负拟。這些解決方案是眾多軟件開發(fā)人員經(jīng)過相當(dāng)長的一段時(shí)間的試驗(yàn)和錯誤總結(jié)出來的。

項(xiàng)目中合理地運(yùn)用設(shè)計(jì)模式可以完美地解決很多問題嚷闭,每種模式在現(xiàn)實(shí)中都有相應(yīng)的原理來與之對應(yīng),每種模式都描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問題赖临,以及該問題的核心解決方案胞锰,這也是設(shè)計(jì)模式能被廣泛應(yīng)用的原因。

GOF

在 1994 年兢榨,由 Erich Gamma嗅榕、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名為《Design Patterns - Elements of Reusable Object-Oriented Software》(中文譯名:設(shè)計(jì)模式 - 可復(fù)用的面向?qū)ο筌浖兀?/strong>的書吵聪,該書首次提到了軟件開發(fā)中設(shè)計(jì)模式的概念凌那。該書提出了23種設(shè)計(jì)模式,并分成三大類:創(chuàng)建型模式(Creational Patterns)吟逝、結(jié)構(gòu)型模式(Structural Patterns)帽蝶、行為型模式(Behavioral Patterns)

他們所提出的設(shè)計(jì)模式主要是基于以下的面向?qū)ο笤O(shè)計(jì)原則块攒。

  • 接口編程而不是對實(shí)現(xiàn)編程
  • 優(yōu)先使用對象組合不是繼承

創(chuàng)建型模式

主要用于處理對象的創(chuàng)建励稳,實(shí)例化對象。

創(chuàng)建型設(shè)計(jì)模式提供了一種在創(chuàng)建對象的同時(shí)隱藏創(chuàng)建邏輯的方式囱井,不再由我們直接實(shí)例化對象麦锯。

而是根據(jù)特定場景,由程序來確定創(chuàng)建對象的方式琅绅,從而保證更大的性能、更好的架構(gòu)優(yōu)勢鹅巍。

  • 單例模式(Singleton)
  • 建造者模式(Builder)
  • 原型模式(Prototype)
  • 簡單工廠模式(Simple Factory)(不在23設(shè)計(jì)模式之中)
  • 工廠方法模式(Factory Method)
  • 抽象工廠方法模式(Abstract Factory)

行為型模式

描述類或?qū)ο笤鯓舆M(jìn)行交互和職責(zé)分配千扶。

行為型設(shè)計(jì)模式特別關(guān)注對象之間的通信料祠,用于幫助系統(tǒng)間各對象的通信,以及如何控制復(fù)雜系統(tǒng)中流程澎羞。

  • 策略模式(Strategy Pattern)
  • 狀態(tài)模式(State Pattern)
  • 責(zé)任鏈模式(Chain of Responsibility Pattern)
  • 解釋器模式(Interpreter Pattern)
  • 命令模式(Command Pattern)
  • 觀察者模式(Observer Pattern)
  • 備忘錄模式(Memento Pattern)
  • 迭代器模式(Iterator Pattern)
  • 模板方法模式(Template Pattern)
  • 訪問者模式(Visitor Pattern)
  • 中介者模式(Mediator Pattern)
  • 空對象模式(Null Object Pattern)(不在23設(shè)計(jì)模式之中)

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

處理類或?qū)ο箝g的組合髓绽。

結(jié)構(gòu)型設(shè)計(jì)模式關(guān)注類和對象的組合,用于幫助將多個(gè)對象組織成更大的結(jié)構(gòu)妆绞。

繼承的概念被用來組合接口和定義組合對象獲得新功能的方式顺呕。

  • 代理模式(Proxy Pattern)
  • 組合模式(Composite Pattern)
  • 適配器模式(Adapter Pattern)
  • 裝飾器模式(Decorator Pattern)
  • 享元模式(Flyweight Pattern)
  • 外觀模式(Facade Pattern)
  • 橋接模式(Bridge Pattern)
  • 過濾器模式(Filter、Criteria Pattern)(不在23設(shè)計(jì)模式之中)




具體設(shè)計(jì)模式的簡介括饶,待更新...


引用
設(shè)計(jì)模式RUNOOB.COM
幾種常用的設(shè)計(jì)模式介紹

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末株茶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子图焰,更是在濱河造成了極大的恐慌启盛,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件技羔,死亡現(xiàn)場離奇詭異僵闯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)藤滥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門鳖粟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拙绊,你說我怎么就攤上這事向图。” “怎么了时呀?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵张漂,是天一觀的道長。 經(jīng)常有香客問我谨娜,道長航攒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任趴梢,我火速辦了婚禮漠畜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坞靶。我一直安慰自己憔狞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布彰阴。 她就那樣靜靜地躺著瘾敢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上簇抵,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天庆杜,我揣著相機(jī)與錄音,去河邊找鬼碟摆。 笑死晃财,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的典蜕。 我是一名探鬼主播断盛,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼愉舔!你這毒婦竟也來了钢猛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤屑宠,失蹤者是張志新(化名)和其女友劉穎厢洞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體典奉,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躺翻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卫玖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片公你。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖假瞬,靈堂內(nèi)的尸體忽然破棺而出陕靠,到底是詐尸還是另有隱情,我是刑警寧澤脱茉,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布剪芥,位于F島的核電站,受9級特大地震影響琴许,放射性物質(zhì)發(fā)生泄漏税肪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一榜田、第九天 我趴在偏房一處隱蔽的房頂上張望益兄。 院中可真熱鬧,春花似錦箭券、人聲如沸净捅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛔六。三九已至荆永,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間国章,已是汗流浹背屁魏。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捉腥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓你画,卻偏偏與公主長得像抵碟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子坏匪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360

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

  • 設(shè)計(jì)模式匯總 一拟逮、基礎(chǔ)知識 1. 設(shè)計(jì)模式概述 定義:設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 3,949評論 1 15
  • ?? 對設(shè)計(jì)模式的極簡說明适滓!?? 這個(gè)話題可以輕易讓任何人糊涂《仄現(xiàn)在我嘗試通過用 最簡單 的方式說明它們,來讓你(和我...
    月球人simon閱讀 1,109評論 1 2
  • 設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐凭迹,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用罚屋。設(shè)計(jì)模式是軟...
    Chars閱讀 671評論 2 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)嗅绸,斷路器脾猛,智...
    卡卡羅2017閱讀 134,711評論 18 139
  • 原文鏈接:http://blog.csdn.net/zhangerqing http://www.cnblogs....
    孤獨(dú)雜貨鋪閱讀 1,519評論 0 3