依賴倒置原則

依賴倒置抽象的概念:

1、高層模塊不應該依賴底層模塊,兩者都應該依賴其抽象。

2、抽象不應該依賴細節。

3、細節應該依賴抽象。

依賴倒置的具體的表現:

1、模塊間的依賴通過抽象發生,實現類之間不直接發生依賴關係。(依賴關係通過介面或者抽象類)

2、介面或者抽象類不依賴於實現類。

3、實現類依賴介面 或者 抽象類

上面提到的可以用一句話概括,面向介面編程(面向對象設計的精髓)。

優點:

採用依賴倒置原則,可以減少類之間的耦合性。提高系統的穩定性,提高可讀性和可維護性。

當需求的變更時,最終只需要修改高層的業務場景類(也就是調用的地方)

依賴倒置對並行開發的影響:

1、只要定義兩者之間的介面(或者抽象類),就可以獨立開發了

2、項目單元測試也可以獨立地運行,就可以測試驅動開發(這是依賴倒置的最高應用場景)

抽象更深入的理解:

1、抽象是對實現的約束,對實現者而言,是一種契約(約束作用)

2、約束自己也約束別人,保證雙方按照契約(抽象)就行開發

依賴倒置中依賴的三種方法:

1、構造函數,傳遞依賴對象 例如:public Driver( ICar_car){}

2、通過setter 方法 例如:public void setCar(ICar_car){}

3、介面聲明 例如:public class Benz implements ICar{}

踐行依賴倒置原則:

1、每個類盡量都有介面 或者 抽象類,或者抽象類和介面兩者並存

2、變數的表面類型盡量是介面或者是抽象類

3、任何類不應該從具體類派生

4、盡量不要覆寫基類已經實現的方法

5、結合里氏替換原則使用

通俗講:

1、介面負責定義公共的屬性和方法,並且聲明與其他對象的依賴關係

2、抽象類負責公共構造部分的實現

3、實現類實現業務邏輯,並且適當進行細化擴展

總結:

1、變數的表面類型盡量是介面或者是抽象類

2、每個類盡量都有介面 或者 抽象類,或者抽象類和介面兩者並存

3、記住一點,面向介面編程,就抓住了依賴倒置原則的核心


推薦閱讀:

有原則能讓自己更簡單與世界相處
1 Embrace Reality and Deal with It(擁抱現實,並認真解決)
瑜伽修習必知的四大法則
一些準則
笨方法讀《原則》(12):成功會在你習慣性避免失敗時降臨

TAG:規則 | 原則 | 科技 |