IOC將實(shí)例依賴抽取出來(lái)放到配置文件中管理,但是思考這么一個(gè)問(wèn)題:如果只是將實(shí)例化抽取出來(lái)放到配置文件中,和在代碼中實(shí)現(xiàn)有什么區(qū)別?
如果沒(méi)有真正理解IOC,就會(huì)覺(jué)得迷茫,似乎確實(shí)有這個(gè)問(wèn)題存在。
IOC的優(yōu)勢(shì)在于通過(guò)第三方容器將資源統(tǒng)一管理,減少資源和資源調(diào)用方的依賴關(guān)系,好處就是降低耦合,修改資源時(shí)不用侵入代碼?;氐缴厦娴膯?wèn)題,抽取到配置文件中和在代碼中實(shí)現(xiàn)有什么區(qū)別?首先,“代碼中實(shí)現(xiàn)”有點(diǎn)含糊,如果說(shuō)的是不使用IOC,依賴還是在資源調(diào)用方管理,耦合就不可避免,在資源修改的時(shí)候,資源調(diào)用方很可能也需要修改。如果“代碼中實(shí)現(xiàn)”指的是IOC使用配置文件管理資源,還是用代碼管理資源,我認(rèn)為是沒(méi)有區(qū)別的。配置文件只是實(shí)現(xiàn)方式,用一個(gè)配置類來(lái)處理也可以實(shí)現(xiàn),IOC最重要的是資源管理容器根據(jù)配置信息進(jìn)行資源的組裝和自動(dòng)注入,而不用特別關(guān)注資源在哪里配置。