IoC & DI
Dependency Injection 依賴注入 (DI)
如何向五歲的孩童解釋 DI?
當你自己去開冰箱拿東西時,很可能會闖禍。
你可能忘了關冰箱門、可能會拿了爸媽不想讓你碰的東西,
甚至冰箱裡根本沒有你想要找的食物,又或者它們早已過了保存期限。
你應該把自己需要的東西說出來就好,
例如:「我想要一些可以搭配午餐的飲料。」
然後,當你坐下用餐時,我們會準備好這些東西。物件導向設計原則
Inversion of Control 控制反轉(IoC)
Dependency Injection 依賴注入 (DI)
Note: 每當需要注入相依物件時,一般建議優先考慮「建構式注入」,因為其用法對呼叫端來說相當明確、直覺——建立物件時就要一併傳入所有相依物件,所以呼叫端透過建構函式便可得知某物件相依於哪些第三方元件。
介面導向設計
這個把初始化動作,由原本目標物件內,轉移到目標物件之外,稱作「控制反轉」,也就是 IoC。
這個把依賴的物件,透過目標物件公開建構式,交給外部來決定,稱作「依賴注入」,也就是 DI。
而 IoC 跟 DI,其實就是同一件事:讓外部決定目標物件的相依物件。
Last updated