【Java高級工程師蛻變之路】076 架構設計基本原則之依賴倒置原則(DIP)

依賴倒置原則(DIP)

DIP, Dependence Inversion Principle , 依賴倒置原則

依賴倒置原則的定義

原始定義:高層模塊不要依賴低層模塊,兩種都應該依賴抽象。抽象不應該依賴細節,細節應該依賴抽象。

核心思想是:要面向接口編程,不要面向實現編程

依賴倒置原則的作用

  1. 降低類之間的耦合性
  2. 提高系統的穩定性
  3. 減少並行開發引起的風險
  4. 提高代碼的可讀性和可維護性

依賴倒置原則的實現方法

顧客購物程序實例:

  • 反應“顧客類”與“商店類”的關係。商店類有 sell 方法,顧客通過該方法進行購物。

    深圳店的購物可以這麼寫:

    /**
     * 顧客
     *
     * @name: Customer
     * @author: terwer
     * @date: 2022-04-15 22:42
     **/
    public class Customer {
        public void shoping(ShenzhenShop shop) {
            System.out.println(shop.sell());
        }
    }
    
  • 上面設計存在缺陷,加入新加入廣州門店,上面的代碼就不能複用了。需要修改代碼:

    /**
     * 顧客
     *
     * @name: Customer
     * @author: terwer
     * @date: 2022-04-15 22:42
     **/
    public class Customer {
        public void shoping(GuangzhouShop shop) {
            System.out.println(shop.sell());
        }
    }
    
  • 顧客每換一次門店,就要修改一次代碼,違背了開閉原則。

    存在問題的原因:顧客類設計的時候同商店類綁定了,違背了依賴倒置原則。

    public class Customer {
        public void shoping(Shop shop) {
            System.out.println(shop.sell());
        }
    }
    

    image-20220416011909346

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章