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

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

設(shè)計(jì)模式(Design Pattern)代表了最佳的實(shí)踐,是軟件開發(fā)人員在軟件開發(fā)過程中遇到一般問題的解決方案,這些解決方案是眾多軟件開發(fā)人員在相當(dāng)長(zhǎng)的一段時(shí)間的試驗(yàn)和錯(cuò)誤中總結(jié)出來的。

設(shè)計(jì)模式是一套被反復(fù)使用的,多數(shù)人知曉的,經(jīng)過分類編目的,代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了重用代碼,讓代碼更容易的被別人理解,保證代碼可靠性。毫無疑問,設(shè)計(jì)模式于己于他人系統(tǒng)都是雙贏的,設(shè)計(jì)模式使得代碼編制真正的工程化,設(shè)計(jì)模式是軟件工程的基石。項(xiàng)目中適當(dāng)?shù)氖褂迷O(shè)計(jì)模式可以解決很多問題,每一種模式在現(xiàn)實(shí)中都有相應(yīng)的原理來與之對(duì)應(yīng),每種模式都描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問題,以及該問題的核心解決方案,這也是設(shè)計(jì)模式被廣泛應(yīng)用的原因。


在1994年,由Erich Gamma, Richard Helm, Ralph Johnson 和 John Vlissides 合著出版了一本名為 Design Patterns - Elements of Reusable Object - Oriented Software (中文譯名:設(shè)計(jì)模式 - 可重用的面向?qū)ο筌浖?


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

1. 開閉原則(Open Close Principle)
開閉原則的主要意思是:對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。在程序需要擴(kuò)展的時(shí)候,不能去修改原有的代碼,實(shí)現(xiàn)一個(gè)熱插拔的效果。簡(jiǎn)單點(diǎn)說,是為了使程序的拓展性好,易于維護(hù)和升級(jí)。想要達(dá)到這樣的效果,我們需要使用接口和抽象類。

2.里氏代換原則(Liskov Substitution Principle)
里氏代換原則是面向?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ī)范。

3. 依賴倒轉(zhuǎn)原則(Dependence Inversion Principle)
這個(gè)原則是開閉原則的基礎(chǔ),具體內(nèi)容:針對(duì)接口編程,依賴于抽象而不依賴于具體。

4. 接口隔離原則(Interface Segregation Principle)
這個(gè)原則的意思是:使用多個(gè)隔離的接口,比使用單個(gè)接口要好。它還有另外一個(gè)意思:降低類之間的耦合度。所以,其實(shí)設(shè)計(jì)模式就是從大型軟件架構(gòu)出發(fā),便于升級(jí)和維護(hù)的軟件設(shè)計(jì)思想,它強(qiáng)調(diào)降低依賴,降低耦合。

5. ?迪米特法則,又稱最少知道原則(Demeter Principle)
最少知道原則是指:一個(gè)實(shí)體應(yīng)當(dāng)盡量少的于其他實(shí)體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對(duì)獨(dú)立。

6. 合成復(fù)用原則(Composite Reuse Principle)
合成復(fù)用原則是指:盡量使用合成/聚合的方式,而不是使用繼承。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 設(shè)計(jì)模式之六大原則(轉(zhuǎn)載) 關(guān)于設(shè)計(jì)模式的六大設(shè)計(jì)原則的資料網(wǎng)上很多...
    霄霄霄霄閱讀 943評(píng)論 0 1
  • 前言 設(shè)計(jì)模式六大原則網(wǎng)上資料比較多比較亂,本文將網(wǎng)上的一些好的資料做一下整理,以便隨時(shí)翻閱。友情提示,設(shè)計(jì)模式雖...
    簡(jiǎn)單的土豆閱讀 1,510評(píng)論 0 10
  • 詳解設(shè)計(jì)模式六大原則 設(shè)計(jì)模式(Design pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼...
    鮑陳飛閱讀 757評(píng)論 0 4
  • 轉(zhuǎn)載標(biāo)注聲明:http://www.uml.org.cn/sjms/201211023.asp 目錄:[設(shè)計(jì)模式六...
    Bloo_m閱讀 797評(píng)論 0 7
  • 設(shè)計(jì)模式六大原則 設(shè)計(jì)模式六大原則(1):?jiǎn)我宦氊?zé)原則 定義:不要存在多于一個(gè)導(dǎo)致類變更的原因。通俗的說,即一個(gè)類...
    viva158閱讀 823評(píng)論 0 1

友情鏈接更多精彩內(nèi)容