參考: 控制反轉 wiki 依賴注入參考1,能極大促進理解 依賴注入參考2
In software engineering, dependency injection is a software design pattern that implements inversion of control for resolving dependencies. Inversion of Control(IOC):控制反轉。 是面向對象編程中的一種設計原則,可以用來減低計算機代碼之間的耦合度。 其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),還有一種方式叫“依賴查找”(Dependency Lookup)。通過控制反轉,對象在被創建的時候,由一個調控系統內所有對象的外界實體,將其所依賴的對象的引用傳遞給它。也可以說,依賴被注入到對象中。
Dependency: ClassA 中 含有 ClassB 的實例,就稱ClassA對ClassB有一個依賴。
Dependency Injection: 直接在構造函數初始化是一種Hard init方式??梢栽谕獠繉嵗疌lassB后,傳入ClassA中構造依賴關系。這種非自己主動初始化依賴,而通過外部來傳入依賴的方式,就稱為依賴注入
硬初始化(hard init):這種在MovieLister中創建MovieFinderImpl的方式,使得MovieLister不僅僅依賴于MovieFinder這個接口,它還依賴于MovieListImpl這個實現。 這種在一個類中直接創建另一個類的對象的代碼,和硬編碼(hard-coded strings)以及硬編碼的數字(magic numbers)一樣,是一種導致耦合的壞味道,我們可以把這種壞味道稱為硬初始化。
新聞熱點
疑難解答