IoC:控制翻轉(zhuǎn) DI:依賴注入
控制翻轉(zhuǎn)是代碼復(fù)用的一種模式(注意不是設(shè)計模式)
一般(非IoC)的復(fù)用,通常是用戶代碼調(diào)用組件(任意形式的被復(fù)用的代碼,本答案中統(tǒng)稱為組件)。也就是用戶代碼解決“Why it works, What to do”,組件解決“How to do”,邏輯的入口是用戶代碼, 而控制翻轉(zhuǎn)則是組件來調(diào)用用戶代碼,也就是組件解決“Why it works, When to do”,用戶代碼解決“What to do”,邏輯的入口是組件
下面是除了DI之外的控制翻轉(zhuǎn)的例子:
1.接口/虛函數(shù) 組件調(diào)用接口/虛函數(shù),具體由用戶代碼實現(xiàn)
2.發(fā)布訂閱(事件)模式 組件觸發(fā)事件,用戶代碼訂閱事件
3.回調(diào) 用戶代碼寫回調(diào),組件來調(diào)用
4.幾乎所有能被稱之為框架的東西 用戶代碼在規(guī)定的地方實現(xiàn)具體業(yè)務(wù)邏輯,剩下的框架負責