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

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

面向?qū)ο笪宕笤O(shè)計(jì)原則

作用 : 指導(dǎo)我們?cè)鯓訉懨嫦驅(qū)ο蟮拇a。

單一職責(zé)原則

定義 : 就一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因。  
理解 : 一個(gè)引起它變化的原因,就是只有一個(gè)職責(zé)的意思。簡單理解就是一個(gè)類只做一件事。 
作用 : 指導(dǎo)我們?cè)鯓釉O(shè)計(jì)類。

里氏替換原則

定義 : 所有應(yīng)用其基類的地方,必須都能透明的使用其子類的對(duì)象。 
理解 : 
    子類能替換父類。
        1. 子類的函數(shù)的參數(shù)范圍要比父類的要小。父類參數(shù)的范圍是1 - 10,子類的參數(shù)范圍要在1 - 10之間。
        2. 子類的函數(shù)的返回值范圍要比父類的要大。父類返回值范圍是1 - 10,子類的返回值的范圍要大于1 - 10。
        3. 子類和父類的變量和函數(shù)的權(quán)限修飾符盡量保持一致。
作用 : 指導(dǎo)我們?cè)鯓釉O(shè)計(jì)繼承。

依賴倒置原則

定義 : 高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴其抽象;抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象。  
理解 : 高層模塊是指調(diào)用者,低層模塊是指被調(diào)用者。類與類之間不應(yīng)該相互依賴,應(yīng)該都依賴抽象。
作用 : 指導(dǎo)我們?cè)鯓釉O(shè)計(jì)類與類之間的組合關(guān)系。

接口隔離原則

定義 : 客戶端不應(yīng)該依賴它不需要的接口。一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口上。  
理解 : 接口要設(shè)計(jì)得小,方法少,職能單一,每個(gè)類都只依賴自己需要的方法。  
作用 : 指導(dǎo)我們?cè)鯓釉O(shè)計(jì)接口。

開閉原則

定義 : 對(duì)于擴(kuò)展是開放的,對(duì)于修改是封閉的。  
理解 : 可以加代碼,不能修改代碼。
作用 : 指導(dǎo)我們?cè)鯓尤U(kuò)展代碼。  

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

開閉原則

里氏代換原則

依賴倒轉(zhuǎn)原則

接口隔離原則

迪米特法則

定義 : 最少知識(shí)原則,一個(gè)實(shí)體應(yīng)當(dāng)盡可能少的與其他實(shí)體發(fā)生相互作用。
理解 : 盡量減少對(duì)象之間的交互。如果兩個(gè)對(duì)象需要彼此通信,可以使用第三方對(duì)象做中介者。
作用 : 指導(dǎo)我們?cè)鯓釉O(shè)計(jì)相互作用的類之間的交互。

組合/聚合復(fù)用原則

定義 : 盡量使用組合/聚合的方式,而不是繼承。
理解 : 組合大于繼承。組合/聚合關(guān)系比繼承關(guān)系耦合度低。
作用 : 指導(dǎo)我們?cè)鯓釉O(shè)計(jì)有層級(jí)結(jié)構(gòu)的對(duì)象之間的交互。

KISS原則

解釋 : keep it simple。產(chǎn)品的設(shè)計(jì)越簡單越好。
目的 : 代碼盡可能簡單,保持代碼可讀和可維護(hù)性。

YAGNI 原則

解釋 : You Ain’t Gonna Need It。當(dāng)前不需要的就不做。
目的 : 不要做過度設(shè)計(jì)。

DRY 原則

解釋 : Don’t Repeat Yourself。不要寫重復(fù)的代碼。
目的 : 提高代碼的復(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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