設計模式原則

2021-08-19 22:14:16 字數 1880 閱讀 2306

**:

設計模式的六種原則是設計模式的精髓所在,掌握了設計原則,你會在無形中用到設計模式。

設計原則主要有六個:單一職責原則、裡式替換原則、依賴倒置、介面隔離原則、迪公尺特法則、開閉原則。

單一職責原則

不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。 

問題由來:類t負責兩個不同的職責:職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。

黎克特制替換原則

1.子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法

2.子類中可以增加自己特有的方法

3.當子類的方法過載父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入引數更寬鬆

4.當子類的方法實現父類抽象方法時,方法的後置條件(即方法的返回值)要比父類更嚴格

依賴倒置原則

高層元件應該依賴抽象而不依賴具體,即面向介面程式設計,一般依賴的成員變數或者引數都應該是抽象的不應該是具體的。

具體講解:

inte***ce ieat  

} class eatwater implements ieat

} public class human

/* //public void dosomething(string food)//我愛吃東西,吃什麼呢,看傳入什麼

// // if(food.equals("water"))

//

//}

*/

public static void main(string args)

}

其中注釋的就是我們常用的方法。這種方法非常不適於擴充套件,因為如果要吃香蕉,吃西瓜,又要在dosomething裡面寫一堆判斷。寫著寫著就混了。

因此一句話總結:多用抽象的介面來描述相同的動作降低實現這個動作的人和物之間的耦合度

介面隔離原則

客戶端不應該依賴它不需要的介面;乙個類對另乙個類的依賴應該建立在最小的介面

一句話總結:就好比魚和人兩個類,魚是游泳和腮呼吸兩個動作,人是走路和吃飯兩個動作,這些動作不能寫在乙個介面裡面,把這四個動作都包含了。要拆成專門對魚和人的兩個介面才行

迪公尺特法則

迪公尺特法則又叫最少知道原則,最早是在2023年由美國northeastern university的ian holland提出。通俗的來講,就是乙個類對自己依賴的類知道的越少越好。也就是說,對於被依賴的類來說,無論邏輯多麼複雜,都盡量地的將邏輯封裝在類的內部,對外除了提供的public方法,不對外洩漏任何資訊

開閉原則

盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的**來實現變化。

設計模式 設計模式原則

1 單一職責原則 srp 乙個類應當只有乙個引起其變化的原因。使用單一職責原則的好處有 1 類的複雜性降低 2 可讀性提高 3 可維護性提高 4 變更引起的風險降低 2 黎克特制替換原則 lsp 在使用父類的地方,可以使用其子類替換。黎克特制替換原則的含義 1 子類必須完全實現父類的方法 2 子類可...

設計模式 設計原則

1.單一職責原則 single responsibility principle,簡稱srp 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到...

設計模式 設計原則

description 這是本人學習 設計模式之禪 的筆記 設計原則 一 單一職責 應該有且僅有乙個原因讓乙個類發生變更。這個原則目的是要讓介面的職責分明,結構清晰。優點 類的複雜度降低,可讀性提高,變更風險低,可維護性提高。二 黎克特制替換 通俗一點就是父類存在的地方,可以替換為子類,而程式的行為...