設(shè)計(jì)原則

S.O.L.I.D是面向?qū)ο笤O(shè)計(jì)和編程(OOD&OOP)中幾個(gè)重要編碼原則(Programming Priciple)的首字母縮寫。

S 單一責(zé)任原則
O 開放封閉原則
L 里氏替換原則
I 接口分離原則
D 依賴倒置原則

單一責(zé)任原則:
當(dāng)需要修改某個(gè)類的時(shí)候原因有且只有一個(gè)。換句話說(shuō)就是讓一個(gè)類只做一種類型責(zé)任,當(dāng)這個(gè)類需要承當(dāng)其他類型的責(zé)任的時(shí)候,就需要分解這個(gè)類。

開放封閉原則
軟件實(shí)體應(yīng)該是可擴(kuò)展,而不可修改的。也就是說(shuō),對(duì)擴(kuò)展是開放的,而對(duì)修改是封閉的。

里氏替換原則
當(dāng)一個(gè)子類的實(shí)例應(yīng)該能夠替換任何其超類的實(shí)例時(shí),它們之間才具有is-A關(guān)系
依賴倒置原則
1. 高層模塊不應(yīng)該依賴于低層模塊,二者都應(yīng)該依賴于抽象
2. 抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象

接口分離原則
不能強(qiáng)迫用戶去依賴那些他們不使用的接口。換句話說(shuō),使用多個(gè)專門的接口比使用單一的總接口總要好。

迪米特原則
又叫作最少知識(shí)原則。 只與你的直接朋友交談,不跟“陌生人”說(shuō)話。其含義是:如果兩個(gè)軟件實(shí)體無(wú)須直接通信,那么就不應(yīng)當(dāng)發(fā)生直接的相互調(diào)用,可以通過(guò)第三方轉(zhuǎn)發(fā)該調(diào)用。其目的是降低類之間的耦合度,提高模塊的相對(duì)獨(dú)立性。
從依賴者的角度來(lái)說(shuō),只依賴應(yīng)該依賴的對(duì)象。
從被依賴者的角度說(shuō),只暴露應(yīng)該暴露的方法。

最后編輯于
?著作權(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)容

  • Python6大設(shè)計(jì)原則 閱讀目錄 內(nèi)容總覽 六大設(shè)計(jì)原則都有哪些 一、單一職責(zé)原則 二、里氏替換原則 三、依賴倒...
    tomtiddler閱讀 1,677評(píng)論 0 0
  • 面向?qū)ο蟮?個(gè)基本要素: 封裝、繼承、多態(tài) 面向?qū)ο蟮?個(gè)基本設(shè)計(jì)原則: 單一職責(zé)原則(Single-Respos...
    badcyc閱讀 967評(píng)論 0 4
  • 軟件開發(fā)是始于面向過(guò)程的 軟件開發(fā)是始于面向過(guò)程的,因?yàn)槊嫦蜻^(guò)程地解決問(wèn)題更直接,軟件本身就是一個(gè)解決問(wèn)題的過(guò)程;...
    侏羅紀(jì)猿閱讀 821評(píng)論 0 2
  • 今天聽了古典老師的一節(jié)課,告訴了我們?nèi)绾斡?0分鐘問(wèn)自己5個(gè)問(wèn)題找到適合自己的職業(yè)發(fā)展方向。 相信很多朋友的職場(chǎng)生...
    剛好聽到你閱讀 752評(píng)論 0 0
  • 玉面君書夜攔秋,輕解羅衫,拂手御紅袖。 窗前蟬燥幾時(shí)休,勸君掩目,月明聲啾啾。 華年初解鬢白眸,何日泛輕舟。 心御...
    瀟雯閱讀 200評(píng)論 0 4

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