依賴倒置原則 DIP

2021-04-23 00:29:30 字數 1259 閱讀 4994

一、dip簡介(dip--dependency inversion principle):

1、高層模組不應該依賴於低層模組,二者都應該依賴於抽象。

2、抽象不應該依賴於細節,細節應該依賴於抽象。  

高層模組包含了乙個應該程式中的重要的策略選擇和業務模型,正是這些高層模組才使得其所有的應用程式區別於其他,如果高層依賴於低層,那麼對低層模組的改動就會直接影響到高層模組,從而迫使它們依次做出改動。

二、舉例說明:

反面例子:

缺點:耦合太緊密,light發生變化將影響toggleswitch。  

解決辦法一:

將light作成abstract,然後具體類繼承自light。

優點:toggleswitch依賴於抽象類light,具有更高的穩定性,而bulblight與tubelight繼承自light,可以根據"開放-封閉"原則進行擴充套件。只要light不發生變化,bulblight與tubelight的變化就不會波及toggleswitch。

缺點:如果用toggleswitch控制一台電視就很困難了。總不能讓tv繼承自light吧。

解決方法二:

優點:更為通用、更為穩定。

三、dip優點:

使用傳統過程化程式設計所建立的依賴關係,策略依賴於細節,這是糟糕的,因為策略受到細節改變的影響。依賴倒置原則使細節和策略都依賴於抽象,抽象的穩定性決定了系統的穩定性。

、啟發式規則:

1、任何變數都不應該持有乙個指向具體類的指標或者引用

2、任何類都不應該從具體類派生(始於抽象,來自具體)

3、任何方法都不應該覆寫它的任何基類中的已經實現了的方法

DIP依賴倒置原則

1.高層模組不應該依賴低層模組,二者都應該依賴抽象 2.抽象不應該依賴於細節。細節應該依賴於抽象 1.簡單介紹 結構良好的物件導向架構都具有清晰的層次定義,每個層次通過乙個定義良好的 受控的介面向外提供了一組內聚的服務。對於這個陳述的簡單理解可能會致使設計者設計出類似下圖的結構。圖中,高層的poli...

依賴倒置原則 DIP

依賴倒置 dependence inversion principle 原則講的是 要依賴於抽象,不要依賴於具體。簡單的說,依賴倒置原則要求客戶端依賴於抽象耦合。抽象不應當依賴於細節 細節應當依賴於抽象 要針對介面程式設計,不針對實現程式設計。舉例說明 反面例子 缺點 耦合太緊密,light發生變化...

轉 依賴倒置原則 DIP

依賴倒置 dependence inversion principle 原則講的是 要依賴於抽象,不要依賴於具體。簡單的說,依賴倒置原則要求客戶端依賴於抽象耦合。原則表述 抽象不應當依賴於細節 細節應當依賴於抽象 要針對介面程式設計,不針對實現程式設計。反面例子 缺點 耦合太緊密,light發生變化...