設計模式原則 依賴倒置原則(DIP)

2021-07-30 11:20:58 字數 699 閱讀 5101

定義:高層模組不應該依賴低層模組,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。

問題由來:類a直接依賴類b,假如要將類a改為依賴類c,則必須通過修改類a的**來達成。這種場景下,類a一般是高層模組,負責複雜的業務邏輯;類b和類c是低層模組,負責基本的原子操作;假如修改類a,會給程式帶來不必要的風險。

解決方案:將類a修改為依賴介面i,類b和類c各自實現介面i,類a通過介面i間接與類b或者類c發生聯絡,則會大大降低修改類a的機率。

依賴倒置原則基於這樣乙個事實:相對於細節的多變性,抽象的東西要穩定的多。以抽象為基礎搭建起來的架構比以細節為基礎搭建起來的架構要穩定的多。在物件導向中,抽象指的是介面或者抽象類,細節就是具體的實現類,使用介面或者抽象類的目的是制定好規範和契約,而不去涉及任何具體的操作,把展現細節的任務交給他們的實現類去完成。

依賴倒置原則的核心思想是面向介面程式設計。

在進行業務設計時,與特定業務有關的依賴關係應該盡量依賴抽象類或介面,而不是依賴具體類。具體的類只負責具體的業務邏輯,修改具體的類不影響與特定業務有關的依賴。在結構化設計中,可以看到底層的模組對高層抽象模組的實現,這說明,抽象的模組要依賴具體實現相關的模組,底層模組的具體實現發生變動時會嚴重影響到高層抽象的模組。物件導向方法的依賴關係恰好相反,具體實現類依賴於抽象類和介面。為此,在進行業務設計時,應盡量在介面或抽象類中定義業務方法的原型,通過具體的實現類來實現該業務,業務內容的修改不影響執行時業務方法的呼叫。

依賴倒置原則 DIP

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

DIP依賴倒置原則

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

依賴倒置原則 DIP

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