物件導向八大設計原則

2021-09-01 06:32:27 字數 1328 閱讀 7290

目的是使程式更加靈活

開-閉原則(目標、總的指導思想)

open closed principle

對擴充套件開放,對修改關閉。

增加新功能,不改變原有**。

類的單一職責(乙個類的定義)

single responsibility principle

乙個類有且只有乙個改變它的原因。

適用於基礎類,不適用基於基礎類構建複雜的聚合類。

//對應封裝

依賴倒置(依賴抽象)

呼叫父類

dependency inversion principle

客戶端**(呼叫的類)盡量依賴(使用)抽象的元件。

抽象的是穩定的。實現是多變的。

找個代表,依賴倒置,隔離呼叫和定義

//封裝、繼承、介面、委託,事件….無時無刻不在體現依賴倒置

組合復用原則(復用的最佳實踐)

composite reuse principle

如果僅僅為了**復用優先選擇組合復用,而非繼承復用。

組合的耦合性相對繼承低。

//關聯關係將某個類當成本類的屬性來使用

//[關聯復用原則]也可以這麼說 連線兩邊的變化點

黎克特制替換(繼承後的重寫,指導繼承的設計)

liskov substitution principle

父類出現的地方可以被子類替換,在替換後依然保持原功能。

子類要擁有父類的所有功能。

子類在重寫父類方法時,盡量選擇擴充套件重寫(base.getsalary()+bonus),防止改變了功能。

重寫改變方法表位址

介面隔離(功能拆分)

inte***ce segregation principle

盡量定義小而精的介面inte***ce,少定義大而全的介面。

小介面之間功能隔離,實現類需要多個功能時可以選擇多實現.或介面之間做繼承。

面向介面程式設計而非面向實現(切換、並行開發) 抽象工廠

客戶端通過一系列抽象操作例項,而無需關注具體型別。

便於靈活切換一系列功能。

實現軟體的並行開發。

迪公尺特法則(類與類互動的原則)

law of demeter

不要和陌生人說話。

類與類互動時,在滿足功能要求的基礎上,傳遞的資料量越少越好。因為這樣可能降低耦合度。

乙個方法使用委託 多個方法使用介面 或者事件這些方法

物件導向八大設計原則

1 依賴倒置模式 dip 穩定不依賴於變化,提出了抽象類。2 開放封閉原則 ocp 對擴充套件開放,對更改封閉 類模組應該是可擴充套件,不可修改的 3 單一職責原則 srp 類裡面不要放太多的成員,這代表這個類裡面隱含了多個責任。4 liskov替換原則 lsp 5介面隔離原則 isp 介面應該小而...

C 設計模式(二) 物件導向八大設計原則

變化是復用的天敵!物件導向設計最大的優勢在於 抵禦變化!從巨集觀層面來看,物件導向的構建方式更能適應軟體的變化,能將變化所帶來的影響減為最小。從微觀層面來看,物件導向的方式更強調各個類的 責任 由於需求變化導致的新增型別不應該影響原來型別的實現 是所謂各負其責 從語言實現層面來看,物件封裝了 和資料...

設計模式 八大設計原則

1.依賴倒置原則 dip 1 高層模組 穩定 不應該依賴於低層模組 變化 二者都應該依賴於抽象 穩定 2 抽象 穩定 不應該依賴於實現細節 變化 實現細節應該依賴於抽象 穩定 這裡 抽象 指的是抽象基類,實現細節 是指子類,低層模組繼承於抽象類,抽象類為高層模組提供低層模組的介面。2.開放封閉原則 ...