關於學習的依賴倒轉原則的學習,當時不是很明白,不過在網上學習了一些後多少有些了解了,在生活中我們去乙個飯館點餐的時候都是根據這個飯店的口碑怎麼樣,招牌菜是什麼,但是在**的世界中這個有一些不一樣了,其實依賴倒轉的主要思想是對於**的復用以及減少耦合度。
還是以飯店為例子,在飯店中有很多的菜品,有炒菜、冷盤、乾鍋、、等等,那麼我們就以這些菜品為乙個類,具體的菜為它的子類,如果我們要符合依賴倒轉原則的話就需要有乙個介面在這裡了,這樣菜品類就不需要依賴於子類來實現了,只需要把介面讓子類去實現這樣還能減少耦合度,也方便菜品這個類的復用,還易拓展了。
原則:a 高層模組不應該依賴於底層模組。兩個都應該依賴於抽象(介面)。 b 抽象不應該依賴細節,細節應該依賴抽象。
說了這個依賴倒轉就必須要說一下這個黎克特制替換,這也就能解釋清楚為什麼為什麼有依賴倒轉的原因了,首先黎克特制替換是指子型別必須能夠替換掉它們的父型別。
還是以我們這個飯館中的菜品為例,如果我們說要炒菜,那麼炒菜有很多的個菜,我們總不能每次都要new乙個菜來做的,所以有了黎克特制替換我們直接以父類的名字去例項化乙個菜品就行,當然這個菜品必須是炒菜的乙個子類才行。這樣我們的父類 菜品類 在不需要修改下就可以拓展菜譜了。
炒菜 炒土豆=new 炒土豆絲
炒土豆.鹽
設計模式 依賴倒轉原則 黎克特制替換原則
依賴倒轉原則 抽象不應該依賴細節,細節應該依賴抽象,換句話說,就是針對介面程式設計,而不是針對實現程式設計。a 高層模組不應該依賴底層模組,兩個都應該依賴抽象。b 抽象不應該依賴細節,細節應該依賴抽象。黎克特制替換原則 子型別必須能夠替換掉他們的父型別。乙個軟體實體如果使用的是父類的話,那麼一定使用...
依賴倒轉原則 與 黎克特制代換原則
依賴倒轉原則 解釋 抽象不應該依賴細節,細節應該依賴於抽象。即,針對介面程式設計,不要對實現程式設計。實現 高層模組不應該依賴低層模組。兩個都應該依賴抽象。抽象不應該依賴細節。細節應該依賴抽象。價值 依賴倒轉是物件導向設計的標誌。如果編寫程式時考慮的都是如何針對抽象程式設計而不是針對細節程式設計。即...
黎克特制代換和依賴倒轉原則 二
上節說到開閉原則的關鍵是抽象化,有了抽象化就要有具體化,從抽象化到具體化的過程,其實也是乙個繼承關係確立的過程。無論是 實現繼承 還是 介面繼承 在這個過程中,我們都要以黎克特制代換原則為指導 任何基類可以出現的地方,子類一定可以出現。依賴倒轉原則也有關於抽象和具體的描述 要依賴於抽象,不要依賴於具...