what:high level modules should note depend upon low level modules.both should depend
高層模組不應該依賴底層模組,兩者都應該其抽象
抽象不應該依賴細節
細節應該依賴抽象
模組間的依賴通過抽象發生,實現類之間不發生直接的依賴關係,起依賴關係是通過介面或抽象類產生。
介面或抽象類不依賴於實現類
實現類依賴介面或抽象。
how:
1.建構函式傳遞依賴物件
2.setter方法傳遞依賴物件
3.介面生命依賴物件
why:
每個類盡量都有介面或抽象類,或者抽象類和介面兩者都具備
變數的表面型別盡量是介面或者抽象類
任何類都不應該從具體類派生
盡量不要覆寫基類
結合黎克特制替換原則使用
設計模式原則 依賴倒置原則(DIP)
定義 高層模組不應該依賴低層模組,二者都應該依賴其抽象 抽象不應該依賴細節 細節應該依賴抽象。問題由來 類a直接依賴類b,假如要將類a改為依賴類c,則必須通過修改類a的 來達成。這種場景下,類a一般是高層模組,負責複雜的業務邏輯 類b和類c是低層模組,負責基本的原子操作 假如修改類a,會給程式帶來不...
三 設計模式 依賴倒置原則
依賴倒置原則的原始定義為 高層模組不應該依賴低層模組,兩者都應該依賴其抽象 抽象不應該依賴細節,細節應該依賴抽象。其核心思想是 要面向介面程式設計,不要面向實現程式設計。由於在軟體設計中,細節具有多變性,而抽象層則相對穩定,因此以抽象為基礎搭建起來的架構要比以細節為基礎搭建起來的架構要穩定得多。這裡...
設計原則 依賴倒置原則
在物件導向程式設計領域中,依賴倒置原則 dependency inversion principle,dip 是指一種特定的解耦 傳統的依賴關係建立在高層次上,而具體的策略設定則應用在低層次的模組上 形式,使得高層次的模組不依賴於低層次的模組的實現細節,依賴關係被顛倒 反轉 從而使得低層次模組依賴於...