大話設計模式 依賴倒轉原則

2021-08-13 19:20:00 字數 819 閱讀 2328

1、定義:

程式要依賴於抽象介面,不要依賴於具體實現。簡單地說就是要求對抽象進行程式設計,不要對實現進行程式設計,這樣就降低了客戶與實現模組間的耦合。

2、抽象不應該依賴細節,細節應該依賴於抽象,即針對介面程式設計,不要對實現程式設計。

3、高層模組(例如cpu、記憶體、硬碟、程式中的主**)不應該依賴於低層模組(例如主機板、做專案時資料庫**封裝成的低層函式等),因為這樣,如果低層模組發生改變,則高層模組便不能再被復用。

4、為什麼高層模組依賴了抽象的介面或抽象類,就不怕低層模組更改呢?

黎克特制代換原則:子型別必須能夠替換掉它們的父型別(注:子類擁有父類所有非private的行為和屬性,因為企鵝不會飛,不能繼承鳥類的飛行方法,所以企鵝不是鳥的子類)。是抽象化的具體實現,而「開放-封閉原則」的關鍵步驟就是抽象化。

只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。

由於子型別的可替換性才使得使用父類型別的模組在無需修改的情況下就可以擴充套件。

高層模組依賴於介面或抽象類,低層模組繼承於介面或抽象類。

5、依賴倒轉其實可以說是物件導向設計的標誌,用哪種語言來編寫程式不重要,如果編寫時考慮的都是如何針對抽象程式設計而不是針對細節程式設計,即程式中所有的依賴關係都是終止於抽象類或者介面,那就是物件導向的設計,反之那就是過程化的設計了。

6、無論是高層還是底層都應該依賴於抽象類或介面,這樣只有介面是穩定的,那麼無論高層或底層發生改變,都沒有關係,底層或高層都很容易被復用。

7.結構圖

《大話設計模式》 依賴倒轉原則

依賴倒轉原則 1,高層模組不應該依賴低層模組,兩個都應該依賴抽象。2,抽象不應該依賴細節,細節應該依賴抽象。針對介面程式設計,不應該針對實現程式設計。黎克特制代換原則 乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且察覺不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類都替換...

讀《大話設計模式》 依賴倒轉原則

依賴倒轉原則 a.高層模組不應依賴低層模組,兩個都應該依賴抽象。b.抽象不應依賴細節,細節應該依賴抽象。說白了就是要針對介面程式設計,不要對是想程式設計。黎克特制代換原則 lsp 子型別必須能夠替換掉它們的父型別 說白了就是乙個軟體實體如果使用的是乙個父類的話,那麼它一定使用於子類,且它察覺不出父類...

大話設計模式閱讀筆記 依賴倒轉原則

1.依賴倒轉原則,也有翻譯成依賴倒置原則的。依賴倒轉原則,原話解釋是抽象不應該依賴細節,細節應該依賴於抽象,這話繞口,說白了,就是針對介面程式設計,不要對實現程式設計。2.黎克特制代換原則 乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別,也就是說,...