一、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發生變化...