在實際編程中,我們一般需要做到如下3點:
- 低層模塊儘量都要有抽象類或接口,或者兩者都有。
- 變量的聲明類型儘量是抽象類或接口。
- 使用繼承時遵循里氏替換原則。
依賴倒置原則的核心就是要我們面向接口編程,理解了面向接口編程,也就理解了依賴倒置。
定義:高層模塊不應該依賴於底層模塊,兩者應該都依賴於 抽象,抽象應該不依賴於細節,細節應該依賴於抽象.
問題描述: 類A直接依賴於類B,假如要修改爲類A依賴於類C,則必須通過修改類A的代碼來完成,這種情況下,類A一般是高層模塊,負責複雜的業務邏輯,類B和類C是底層模塊,負責基本的原子操作,如果修改類A,會給程序帶來一定的風險.
解決方案: 將類A修改爲依賴接口I, 類B和類C各自實現接口I,類A通過接口I與類B類C發生關聯,這大大降低修改類A的機率
依賴倒置原則基於這樣的一個原則:相對於細節的多變性,抽象的東西要穩定的多,以抽象的基礎搭建起來的架構比以細節爲基礎搭建起來的架構穩定的多
依賴倒置原則的核心思想是面向接口編程,