**:
設計模式的六種原則是設計模式的精髓所在,掌握了設計原則,你會在無形中用到設計模式。
設計原則主要有六個:單一職責原則、裡式替換原則、依賴倒置、介面隔離原則、迪公尺特法則、開閉原則。
單一職責原則
不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。
問題由來:類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 這是本人學習 設計模式之禪 的筆記 設計原則 一 單一職責 應該有且僅有乙個原因讓乙個類發生變更。這個原則目的是要讓介面的職責分明,結構清晰。優點 類的複雜度降低,可讀性提高,變更風險低,可維護性提高。二 黎克特制替換 通俗一點就是父類存在的地方,可以替換為子類,而程式的行為...