依賴倒置(dependence inversion principle)原則講的是:要依賴於抽象,不要依賴於具體。
簡單的說,依賴倒置原則要求客戶端依賴於抽象耦合。原則表述:
抽象不應當依賴於細節;細節應當依賴於抽象;
要針對介面程式設計,不針對實現程式設計。
反面例子:
缺點:耦合太緊密,light發生變化將影響toggleswitch。
解決辦法一:
將light作成abstract,然後具體類繼承自light。
優點:toggleswitch依賴於抽象類light,具有更高的穩定性,而bulblight與tubelight繼承自light,可以根據"開放-封閉"原則進行擴充套件。只要light不發生變化,bulblight與tubelight的變化就不會波及toggleswitch。
缺點:如果用toggleswitch控制一台電視就很困難了。總不能讓tv繼承自light吧。
解決方法二:
優點:更為通用、更為穩定。
結論:使用傳統過程化程式設計所建立的依賴關係,策略依賴於細節,這是糟糕的,因為策略受到細節改變的影響。依賴倒置原則使細節和策略都依賴於抽象,抽象的穩定性決定了系統的穩定性。
原文作者 呂震宇
依賴倒置原則 DIP
一 dip簡介 dip dependency inversion principle 1 高層模組不應該依賴於低層模組,二者都應該依賴於抽象。2 抽象不應該依賴於細節,細節應該依賴於抽象。高層模組包含了乙個應該程式中的重要的策略選擇和業務模型,正是這些高層模組才使得其所有的應用程式區別於其他,如果高...
DIP依賴倒置原則
1.高層模組不應該依賴低層模組,二者都應該依賴抽象 2.抽象不應該依賴於細節。細節應該依賴於抽象 1.簡單介紹 結構良好的物件導向架構都具有清晰的層次定義,每個層次通過乙個定義良好的 受控的介面向外提供了一組內聚的服務。對於這個陳述的簡單理解可能會致使設計者設計出類似下圖的結構。圖中,高層的poli...
依賴倒置原則 DIP
依賴倒置 dependence inversion principle 原則講的是 要依賴於抽象,不要依賴於具體。簡單的說,依賴倒置原則要求客戶端依賴於抽象耦合。抽象不應當依賴於細節 細節應當依賴於抽象 要針對介面程式設計,不針對實現程式設計。舉例說明 反面例子 缺點 耦合太緊密,light發生變化...