App下載
話(huà)題 首頁(yè) > Ruby 教程 > Ruby 教程話(huà)題列表 > 詳情

如何理解IoC(Inversion of Control)?

精華
LYUHE 2016-10-21 03:21:18 瀏覽(3328) 回復(fù)(4) 贊(0)
如何理解IoC(Inversion of Control)?如果能寫(xiě)個(gè)demo解釋最好了。
ruby

回答(4)

宇文傻姑 2016-10-21

IoC:控制翻轉(zhuǎn) DI:依賴(lài)注入

控制翻轉(zhuǎn)是代碼復(fù)用的一種模式(注意不是設(shè)計(jì)模式)

一般(非IoC)的復(fù)用,通常是用戶(hù)代碼調(diào)用組件(任意形式的被復(fù)用的代碼,本答案中統(tǒng)稱(chēng)為組件)。也就是用戶(hù)代碼解決“Why it works, What to do”,組件解決“How to do”,邏輯的入口是用戶(hù)代碼, 而控制翻轉(zhuǎn)則是組件來(lái)調(diào)用用戶(hù)代碼,也就是組件解決“Why it works, When to do”,用戶(hù)代碼解決“What to do”,邏輯的入口是組件

下面是除了DI之外的控制翻轉(zhuǎn)的例子:

1.接口/虛函數(shù) 組件調(diào)用接口/虛函數(shù),具體由用戶(hù)代碼實(shí)現(xiàn)

2.發(fā)布訂閱(事件)模式 組件觸發(fā)事件,用戶(hù)代碼訂閱事件

3.回調(diào) 用戶(hù)代碼寫(xiě)回調(diào),組件來(lái)調(diào)用

4.幾乎所有能被稱(chēng)之為框架的東西 用戶(hù)代碼在規(guī)定的地方實(shí)現(xiàn)具體業(yè)務(wù)邏輯,剩下的框架負(fù)責(zé)

一筆荒蕪 2018-05-31

我也不清楚,坐等大神,火鉗劉明!??!

1144100656 2018-05-31

大神在哪里呀,大神在哪里呀,大神在哪里呀.

1152696398 2018-05-31

有問(wèn)題找度娘,大佬太少,問(wèn)題不好解決!!!!!

要回復(fù),請(qǐng)先登錄 或者注冊(cè)