依賴倒置原則 DIP

2021-09-08 20:43:12 字數 1400 閱讀 4013

依賴倒置(dependence inversion principle)原則講的是:要依賴於抽象,不要依賴於具體

簡單的說,依賴倒置原則要求客戶端依賴於抽象耦合。

抽象不應當依賴於細節;細節應當依賴於抽象

要針對介面程式設計,不針對實現程式設計。

舉例說明:

反面例子:

缺點:

耦合太緊密,light發生變化將影響toggleswitch

解決辦法一:

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

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

缺點:

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

解決方法二:

更為通用、更為穩定。

啟發式規則:

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

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

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

如何抽象:

抽象反映高層策略,就是應用中那些不會隨著具體細節的改變而改變的規則,常用的詞語就是隱喻(metaphore).仔細分析需求,先找出那些業務規則,然後把它們抽象出來形成你的介面。層次化你的設計,常見的方式就是劃分出顯示層,業務層,持久層,再在每層做抽象。這是最粗糙的層次化,你可以在每層再根據需要劃分更細的層次。在實現的時候始終遵循前面提到的原則:只依賴於介面。誰也無法在開始就做到最好,因此要不斷迭代,精化設計。

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

結論:

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

依賴倒置原則 DIP

一 dip簡介 dip dependency inversion principle 1 高層模組不應該依賴於低層模組,二者都應該依賴於抽象。2 抽象不應該依賴於細節,細節應該依賴於抽象。高層模組包含了乙個應該程式中的重要的策略選擇和業務模型,正是這些高層模組才使得其所有的應用程式區別於其他,如果高...

DIP依賴倒置原則

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

轉 依賴倒置原則 DIP

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