依賴倒轉原則和黎克特制轉換原則

2021-09-20 10:32:53 字數 862 閱讀 3534

依賴倒轉原則:

a.高層模組不應該依賴低層模組。兩個都應該依賴抽象。

分析:被呼叫的是低層模組。如果依賴低層模組,這樣造成緊耦合,修改任何部分都會影響其他部分。就像電腦中的cpu,記憶體,都依賴具體的主機板,主機板一壞,所有的部件都沒用了,這不合理。反過來,如果記憶體壞了,也不應該導致其他部件不能用。所以我們都應該依賴於抽象,這樣任何部件壞了,其他不會受到影響,使得無論高層模組還是低層模組都可以很容易地被復用。

b.抽象不應該依賴細節。細節應該依賴抽象。

應用:就像電腦,裡面的cpu,記憶體等部件都是針對介面設計的。如果是針對實現設計,記憶體就要對應到具體的某個品牌的主機板,那就會出現換記憶體需要把主機板也換掉的問題。我們如果用依賴倒轉原則,根據介面設計,這樣**出問題,修理那部分,不會涉及其他部分。這樣可以實現強內聚,松耦合。

黎克特制轉換原則:子型別必須能夠替換掉它們的父型別。

即:乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。

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

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

有違反黎克特制轉換原則的繼承嗎?

有,就是子類只是繼承了,部分父類的非private屬性或者方法。這樣不可以替換它們的父型別。這樣就違反了黎克特制轉換原則。

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

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

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

上節說到開閉原則的關鍵是抽象化,有了抽象化就要有具體化,從抽象化到具體化的過程,其實也是乙個繼承關係確立的過程。無論是 實現繼承 還是 介面繼承 在這個過程中,我們都要以黎克特制代換原則為指導 任何基類可以出現的地方,子類一定可以出現。依賴倒轉原則也有關於抽象和具體的描述 要依賴於抽象,不要依賴於具...

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

依賴倒轉原則 抽象不應該依賴細節,細節應該依賴抽象,換句話說,就是針對介面程式設計,而不是針對實現程式設計。a 高層模組不應該依賴底層模組,兩個都應該依賴抽象。b 抽象不應該依賴細節,細節應該依賴抽象。黎克特制替換原則 子型別必須能夠替換掉他們的父型別。乙個軟體實體如果使用的是父類的話,那麼一定使用...