設計模式 五 依賴倒置與黎克特制代換原則

2022-05-03 04:54:07 字數 1143 閱讀 1126

/**

* 依賴倒轉原則

* 定義: 抽象不應該依賴細節,細節應該依賴於抽象

* 解釋:開發過程中,要學會針對介面程式設計,不要針對需求進行程式設計

* 特徵:

* 高層模組不應該依賴低層模組,兩個都應該依賴抽象

* 抽象不應該依賴細節,細節應該依賴抽象

* 理解:在面向過程開發中,為了使**復用,經常將常用的**進行封裝成方法提取出來,這樣在實現新功能的時候,

* 如果有用來的方法,直接呼叫該方法就可以了,比如連線資料庫,我們將其封裝成乙個方法,每次需要連線時,

* 高層模組呼叫這個底層函式就可以了,這個也叫做 【高層模組】依賴【底層模組】;

* 但是高層模組依賴底層模組這樣的耦合性還是比較高,比如我們需要連線其他的資料庫,或者由mysql轉換成orcal了

* 那此時我們封裝的函式不適用於當前場景了,那就需要重新開發;

* 但是,如果使高層模組和底層模組都依賴於介面或者抽象類,只要介面和抽象類穩定不變,那麼做任何乙個更改都不用

* 擔心其他受到影響,這樣就使用高層模組,底層模組都很容易的被復用,而且不會影響其他的元件

*//**

* 黎克特制代還原則

* 白話翻譯:乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別

* 也就是說在軟體裡面,把父類都替換成它的子類,程式的行為都沒有變化,簡單說就是子型別必須能替換它的父型別

* 而且對程式沒有影響

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

** 由於有黎克特制代換原則,才使得開發-封閉成為可能

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

/*** 總結:

* 依賴倒轉其實就是誰也不需要依靠誰,除了約定的介面,大家可以靈活自如;

* 依賴倒轉其實可以說是物件導向設計的標誌,如果編寫時考慮的都是如何針對抽象程式設計而不是針對細節程式設計,

* 即程式中所有的依賴關係都是終止與抽象類或者介面,那就是物件導向的設計了,反正就是過程化的設計

*/

設計模式原則 依賴倒轉 黎克特制代換原則

設計模式一共有六大原則 單一原則 開放封閉原則 介面分離原則 黎克特制替換原則 最少知識原則 依賴倒置原則。依賴倒轉原則 高層模組不應該依賴於低層模組,兩者都應該依賴於抽象。抽象不應該依賴細節,細節應該依賴抽象。在物件導向程式設計領域中,依賴反轉原則 dependency inversion pri...

依賴倒轉原則 與 黎克特制代換原則

依賴倒轉原則 解釋 抽象不應該依賴細節,細節應該依賴於抽象。即,針對介面程式設計,不要對實現程式設計。實現 高層模組不應該依賴低層模組。兩個都應該依賴抽象。抽象不應該依賴細節。細節應該依賴抽象。價值 依賴倒轉是物件導向設計的標誌。如果編寫程式時考慮的都是如何針對抽象程式設計而不是針對細節程式設計。即...

設計模式 依賴倒置

依賴倒置原則 dependence inversion principle 定義 high level modules should not depend upon low level modules,both should depend upon abstractions.abstractions...