我寫這個自然段的時候,還沒有具體的看依賴倒置的含義。也就是不知者,不知者就算理解錯了也無罪哈哈。
我現在有三個疑問, 何為依賴, 何為倒置(因為我感覺這個名字起得,有點讓人不太好理解!), 依賴為何倒置?
目前在我看來,依賴關係,是乙個物件作為另乙個類的某個方法的引數, 那麼他倆是依賴關係。 那麼倒置是什麼含義?與我之前理解的是否有偏差?
study…begin
依賴這裡的依賴並不是我之前想的,**中的依賴關係。而是***做成什麼事情需要用到zzz這種行為的抽象,在這個裡面,***是高層,zzz是低層。 例如cpu要展示文字需要用到顯示器, cpu為高層, 顯示器為低層。
何為倒置
我們從反面思考,這句話的意思是,倒置是對的,而"正置"是錯的!那麼理解為,正常情況下,我們不做約束,可能出現的情況正是"正置"這種情況。 而這種情況在編碼裡面,在設計中是不對的。例如我們設計一款cpu, 最開始的時候有ab兩個廠家用到了, 如果我們不進行設計的話, ab廠家對他們的硬體進行修改,為了是適應他們的修改,我們的cpu也得進行修改! 這簡直就是荒唐, 這種就是正置的情況, 即上層隨著下層的改變而改變, 就像**的狀態隨著身體狀況的改變而改變。 這種說法並沒有說它多麼不對,這種誰隨著誰改變,本身上是中性的,沒有對與錯。 但是如果用到架構的設計中,這種情形下遵循這種顯然會有問題的!
而倒置的理解,正好反過來了!下層依據上層的改變而改變, 或者是,上層絕對不根據下層的改變而改變,這種事情不能做!, 就像現實生活中的cpu, 所有介面都是定好的,甚至幾年內不會發生改變。所有下層的相關顯示器廠商,不管是什麼型號,多麼高階或者多麼普通,螢幕多大多小,最終都必須遵循cpu已經訂好的介面!cpu的設計是非常複雜的,如果隨著底層的改變而改變的話,那難度簡直就是修羅模式不可能的!實際上也就是這樣的。
所以簡單總結就是:依賴倒置的白話解釋就是,上層需要依賴下層才能完成乙個更為全面的功能,但是上層不可根據下層的改變而改變,反之的話是十分不好維護的!所以就是,上層定義抽象介面,下層沒有迫使其修改的權利,無論內部邏輯實現再複雜,也要遵循給定的介面。我認為這種規範對於編碼的模組化設計具有十分重要的意義。當然,我認為這樣也會要求編寫的人員具備很好的業務能力以及抽象能力。依賴倒置的意義
物件導向設計原則 依賴倒置原則
依賴倒置原則 dependence inversion principle,dip 依賴倒置原則的原始定義為 高層模組不應該依賴低層模組,兩者都應該依賴其抽象 抽象不應該依賴細節,細節應該依賴抽象。其核心思想是 要面向介面程式設計,不要面向實現程式設計。依賴倒置原則是實現開閉原則的重要途徑之一,它降...
依賴倒置原則 物件導向設計原則之依賴倒置原則
依賴倒置原則的定義 依賴倒置原則 dependence inversion principle,dip 是 object mentor 公司總裁羅伯特 馬丁 robert c.martin 於 1996 年在 c report 上發表的文章。依賴倒置原則的原始定義為 高層模組不應該依賴低層模組,兩者...
物件導向設計原則四 依賴倒置原則
依賴倒置原則 dip 定義 高層模組不應該依賴底層模組,兩者都應該依賴其抽象 抽象不應該依賴細節 細節應該依賴抽象。好處 穩定性 可維護性 可擴充套件性。概述 di就是依賴倒置的意思,也可稱為控制反轉,我們以前編寫結構化的程式當中,也就是c語言這樣的語言時,高層模組依賴於底層模組,也就是呼叫者和被呼...