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

依賴倒轉原則:(原文)抽象不該該依賴細節,細節應該依賴於抽象。(白話) 要針對接口編程,不要針對實現編程。
一、高層模塊不該該依賴底層模塊。兩個都應該 依賴抽象
二、抽象不該該依賴細節。細節應該依賴抽象。(抽象——接口或抽象類)
無論高層模塊仍是低層模塊,他們都依賴於抽象,具體一點就是接口或抽象類。只要接口是穩定的,那麼任何一個更改都不用擔憂其餘地方受影響。

里氏代換原則:一個軟件實體若是使用的是一個父類的話,那麼必定適用於其子類,並且他察覺不出父類對象和子類對象的區別。也就是說,在軟件裏,把父類都替換成它的子類,程序的行爲沒有變化(子類型必須可以替換掉他們的父類型編程

(開放封閉原則基於依賴倒轉原則,父類子類無論具體實現,都是針對接口編程的。)
spa

只有當子類能夠替換掉父類,軟件單位的功能不受影響時,父類才能真正被複用,而子類也可以在父類的基礎上增長新的行爲。 因爲子類型的可替換性才使得使用父類類型的模塊在無需修改的狀況下就能夠擴展。