首頁 > 軟體

Java設計模式之依賴倒轉原則精解

2022-02-08 13:01:05

1.什麼是依賴倒轉原則?

  • 高層模組不應該依賴低層模組,二者都應該依賴其抽象。
  • 抽象不應該依賴細節,細節應該依賴抽象。
  • 依賴倒轉 (倒置) 的中心思想是面向介面程式設計。
  • 依賴倒轉原則是基於這樣的設計理念:相對於細節的多變性,抽象的東西要穩定的多。以抽象為基礎搭建的架構比以細節為基礎的架構要穩定的多。在Java中,抽象指的是介面或抽象類,細節就是具體的實現類。
  • 使用介面或抽象類的目的是制定好規範,而不涉及任何具體的操作,把展現細節的任務交給他們的實現類去完成。

2.程式碼案例

package com.szh.principle.inversion;
 
/**
 *
 */
class Email {
    public String getInfo() {
        return "電子郵件資訊: hello,world";
    }
}
 
// 完成Person接收訊息的功能
// 方式1分析
//   1. 簡單,比較容易想到
//   2. 如果我們獲取的物件是 微信,簡訊等等,則新增類,同時Person也要增加相應的接收方法
//   3. 解決思路:引入一個抽象的介面IReceiver, 表示接收者, 這樣Person類與介面IReceiver發生依賴
//   因為Email, WeiXin 等等屬於接收的範圍,他們各自實現IReceiver 介面就ok, 這樣我們就符號依賴倒轉原則
class Person {
    public void receive(Email email ) {
        System.out.println(email.getInfo());
    }
}
 
public class DependencyInversion {
    public static void main(String[] args) {
        Person person = new Person();
        person.receive(new Email());
    }
}

我們可以根據依賴倒轉原則對上面的程式碼做一個改進,如下:


IT145.com E-mail:sddin#qq.com