DI以及依賴注入詳解

  一、DI是什麼? 

         在應用間通常會有兩個或者多個類組成,然後他們互相協作共同完成一個特定的業務邏輯,每個對象負責管理與自己相互協作的對象的引用。這將會導致高耦合難以測試的代碼。

       簡單的說DI是能夠將組件的依賴關係進行鬆耦合一種編程方式,讓組件之間複雜的依賴關係簡單化,下面演示DI的好處:

package com.example.spring.DI;


import lombok.extern.slf4j.Slf4j;

/**
 * 演示在demo01裏初始化demo02的類的行爲
 */
@Slf4j
public class Demo01 {

    private Demo02 demo02;


    private Quest quest;

    /**
     * 可以發現Demo02類與Demo01類緊緊耦合在一起,緊密耦合的代碼難以測試,難以複用。緊耦合
     * demo01只能夠做demo02的類的行爲
     */

    public Demo01(){
        demo02=new Demo02();
    }


    /**
     * 將quest類注入到Demo01類裏,可以把很多行爲寫在quest裏,這種方式爲構造器注入,
     * 可以定義一個quest接口或者抽象類,然後將所有的共同行爲實現quest類,實現了鬆耦合
     * @param quest
     */
    public Demo01(Quest quest){
        this.quest=quest;
    }



   public void B(){
       log.debug(""+demo02.A());
   }

}

        最重要的是quest爲定義的所有請求,可以是一個接口,然後將它以構造器的形式注入到類中,可以使用不同的具體實現類 執行不同的行爲。

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