設計模式的設計原則

long2ge發表於2021-11-11

物件導向五大設計原則

作用 : 指導我們怎樣寫物件導向的程式碼。

單一職責原則

定義 : 就一個類而言,應該僅有一個引起它變化的原因。  
理解 : 一個引起它變化的原因,就是隻有一個職責的意思。簡單理解就是一個類只做一件事。 
作用 : 指導我們怎樣設計類。

里氏替換原則

定義 : 所有應用其基類的地方,必須都能透明的使用其子類的物件。 
理解 : 
    子類能替換父類。
        1. 子類的函式的引數範圍要比父類的要小。父類引數的範圍是1 - 10,子類的引數範圍要在1 - 10之間。
        2. 子類的函式的返回值範圍要比父類的要大。父類返回值範圍是1 - 10,子類的返回值的範圍要大於1 - 103. 子類和父類的變數和函式的許可權修飾符儘量保持一致。
作用 : 指導我們怎樣設計繼承。

依賴倒置原則

定義 : 高層模組不應該依賴低層模組,兩者都應該依賴其抽象;抽象不應該依賴細節,細節應該依賴抽象。  
理解 : 高層模組是指呼叫者,低層模組是指被呼叫者。類與類之間不應該相互依賴,應該都依賴抽象。
作用 : 指導我們怎樣設計類與類之間的組合關係。

介面隔離原則

定義 : 客戶端不應該依賴它不需要的介面。一個類對另一個類的依賴應該建立在最小的介面上。  
理解 : 介面要設計得小,方法少,職能單一,每個類都只依賴自己需要的方法。  
作用 : 指導我們怎樣設計介面。

開閉原則

定義 : 對於擴充套件是開放的,對於修改是封閉的。  
理解 : 可以加程式碼,不能修改程式碼。
作用 : 指導我們怎樣去擴充套件程式碼。  

設計模式的六大原則

開閉原則

里氏代換原則

依賴倒轉原則

介面隔離原則

迪米特法則

定義 : 最少知識原則,一個實體應當儘可能少的與其他實體發生相互作用。
理解 : 儘量減少物件之間的互動。如果兩個物件需要彼此通訊,可以使用第三方物件做中介者。
作用 : 指導我們怎樣設計相互作用的類之間的互動。

組合/聚合複用原則

定義 : 儘量使用組合/聚合的方式,而不是繼承。
理解 : 組合大於繼承。組合/聚合關係比繼承關係耦合度低。
作用 : 指導我們怎樣設計有層級結構的物件之間的互動。

KISS原則

解釋 : keep it simple。產品的設計越簡單越好。
目的 : 程式碼儘可能簡單,保持程式碼可讀和可維護性。

YAGNI 原則

解釋 : You Ain’t Gonna Need It。當前不需要的就不做。
目的 : 不要做過度設計。

DRY 原則

解釋 : Don’t Repeat Yourself。不要寫重複的程式碼。
目的 : 提高程式碼的複用性。
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Long2Ge

相關文章