設(shè)計(jì)模式--分類與六大原則

在這里插入圖片描述

設(shè)計(jì)模式的重要性

  • 軟件過程中决采,設(shè)計(jì)模式(design pattern)是對(duì)軟件設(shè)計(jì)中普遍存在(反復(fù)出現(xiàn))的各種問題,所提出的解決方案

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

創(chuàng)建型模式

  • 共五種:工廠方法模式欠拾、抽象工廠模式、單例模式骗绕、建造者模式藐窄、原型模式。

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

  • 共七種:適配器模式酬土、裝飾器模式荆忍、代理模式、外觀模式撤缴、橋接模式刹枉、組合模式、享元模式屈呕。

行為型模式**

  • 共十一種:策略模式微宝、模板方法模式、觀察者模式虎眨、迭代子模式蟋软、責(zé)任鏈模式、命令模式嗽桩、備忘錄模式岳守、狀態(tài)模式、訪問者模式碌冶、中介者模式湿痢、解釋器模式。

設(shè)計(jì)模式的六大原則

開閉原則(Open Close Principle)

  • 開閉原則就是說對(duì)擴(kuò)展開放扑庞,對(duì)修改關(guān)閉譬重。在程序需要進(jìn)行拓展的時(shí)候拒逮,不能去修改原有的代碼,實(shí)現(xiàn)一個(gè)熱插拔的效果臀规。所以一句話概括就是:為了使程序的擴(kuò)展性好消恍,易于維護(hù)和升級(jí)。想要達(dá)到這樣的效果以现,我們需要使用接口和抽象類狠怨,后面的具體設(shè)計(jì)中我們會(huì)提到這點(diǎn)。

里氏代換原則(Liskov Substitution Principle)

  • 里氏代換原則(Liskov Substitution Principle LSP)面向?qū)ο笤O(shè)計(jì)的基本原則之一邑遏。 里氏代換原則中說佣赖,任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)记盒。 LSP是繼承復(fù)用的基石憎蛤,只有當(dāng)衍生類可以替換掉基類,軟件單位的功能不受到影響時(shí)纪吮,基類才能真正被復(fù)用俩檬,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為。里氏代換原則是對(duì)“開-閉”原則的補(bǔ)充碾盟。實(shí)現(xiàn)“開-閉”原則的關(guān)鍵步驟就是抽象化棚辽。而基類與子類的繼承關(guān)系就是抽象化的具體實(shí)現(xiàn),所以里氏代換原則是對(duì)實(shí)現(xiàn)抽象化的具體步驟的規(guī)范冰肴∏辏—— From Baidu 百科

依賴倒轉(zhuǎn)原則(Dependence Inversion Principle)

  • 這個(gè)是開閉原則的基礎(chǔ),具體內(nèi)容:真對(duì)接口編程熙尉,依賴于抽象而不依賴于具體联逻。

接口隔離原則(Interface Segregation Principle)

  • 這個(gè)原則的意思是:使用多個(gè)隔離的接口,比使用單個(gè)接口要好检痰。還是一個(gè)降低類之間的耦合度的意思包归,從這兒我們看出,其實(shí)設(shè)計(jì)模式就是一個(gè)軟件的設(shè)計(jì)思想铅歼,從大型軟件架構(gòu)出發(fā)公壤,為了升級(jí)和維護(hù)方便。所以上文中多次出現(xiàn):降低依賴谭贪,降低耦合境钟。

迪米特法則(最少知道原則)(Demeter Principle)

  • 為什么叫最少知道原則锦担,就是說:一個(gè)實(shí)體應(yīng)當(dāng)盡量少的與其他實(shí)體之間發(fā)生相互作用俭识,使得系統(tǒng)功能模塊相對(duì)獨(dú)立。

合成復(fù)用原則(Composite Reuse Principle)

  • 原則是盡量使用合成/聚合的方式洞渔,而不是使用繼承套媚。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缚态,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子堤瘤,更是在濱河造成了極大的恐慌玫芦,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件本辐,死亡現(xiàn)場(chǎng)離奇詭異桥帆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)慎皱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門老虫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茫多,你說我怎么就攤上這事祈匙。” “怎么了天揖?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵夺欲,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我今膊,道長(zhǎng)些阅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任斑唬,我火速辦了婚禮扑眉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赖钞。我一直安慰自己腰素,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布雪营。 她就那樣靜靜地躺著弓千,像睡著了一般。 火紅的嫁衣襯著肌膚如雪献起。 梳的紋絲不亂的頭發(fā)上洋访,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音谴餐,去河邊找鬼姻政。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岂嗓,可吹牛的內(nèi)容都是我干的汁展。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼食绿!你這毒婦竟也來了侈咕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤器紧,失蹤者是張志新(化名)和其女友劉穎耀销,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铲汪,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熊尉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掌腰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帽揪。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖辅斟,靈堂內(nèi)的尸體忽然破棺而出转晰,到底是詐尸還是另有隱情,我是刑警寧澤士飒,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布查邢,位于F島的核電站,受9級(jí)特大地震影響酵幕,放射性物質(zhì)發(fā)生泄漏扰藕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一芳撒、第九天 我趴在偏房一處隱蔽的房頂上張望邓深。 院中可真熱鬧,春花似錦笔刹、人聲如沸芥备。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萌壳。三九已至,卻和暖如春日月,著一層夾襖步出監(jiān)牢的瞬間袱瓮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工爱咬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尺借,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓精拟,卻偏偏與公主長(zhǎng)得像燎斩,于是被迫代替她去往敵國(guó)和親虱歪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355