1. 程式人生 > >概念:dependency injection, IOC, vs callback

概念:dependency injection, IOC, vs callback

setter註入 con 服務 null 種類型 truct func 翻譯 via

callback function as a dependency of the object that it is being passed into. DI is the process of providing the callback (the dependency) to the object. (For example: by giving it to the object via its constructor, a method call, a setter, etc.).

翻譯: callback是具體的依賴, DI是註入依賴的過程

DI是IoC的子集

  • IoC
    意味著對象不會創建他們依賴的其他對象來完成他們的工作。相反,他們從外部服務(例如,xml文件或單個應用程序服務)獲取他們需要的對象。我使用的IoC的2個實現是DI和ServiceLocator。
  • DI意味著在不使用具體對象而是使用抽象(接口)的情況下完成獲取依賴對象的IoC原則。這使得所有組件鏈可測試,導致更高級別的組件不依賴於更低級別的組件,僅來自接口。Mocks實現了這些接口。

技術分享圖片

IoCI nversion o f C ontrol ): - 這是一個通用術語,以多種方式實現(事件,代理等)。

DID ependency I njection): - DI是IoC的子類型,通過

構造函數註入,setter註入或接口註入實現

但是,Spring僅支持以下兩種類型:

  • 二傳手註射
    • 基於setter的DI是通過在調用無參數構造函數或無參數靜態工廠方法來實例化其bean之後調用用戶bean上的setter方法來實現的。
  • 構造函數註入
    • 基於構造函數的DI是通過調用具有多個參數的構造函數來實現的,每個參數代表一個協作者。使用這個我們可以驗證註入的bean不是null並且快速失敗(編譯時失敗而不是運行時),所以我們得到了啟動應用程序本身NullPointerException: bean does not exist構造函數註入是註入依賴項的最佳實踐。

概念:dependency injection, IOC, vs callback