面試:什麼是IoC,IoC和DI的區別是什麼?

IoC也稱爲控制反轉,是一種思考方式,其主要關注點在於Java對象的創建與管理的問題。和傳統的方式相比,當我們需要一個對象的時候,不需要直接new一個,而是去Spring容器中拿一個即可,此時我們失去了對對象的控制權,僅保有使用權。但這樣也可以無需關注對象的管理。

所謂控制,指的是管理對象的權利;

所謂反轉,指的是由Spring管理而不是開發者管理

IoC的其中一個目的是爲了解耦合,當將一個對象交給第三方容器管理後,那麼對象之間的耦合相較於傳統new方式會降低。同時Spring IoC也可以降低對象的管理成本,比如實現單例模式(默認即是單例)等等。

要注意的是,IoC和DI的關係並不是一個,類似於接口和實現類的區別,IoC是一種設計思想,DI是IoC的一種實現,DI也稱爲依賴注入,在Spring中可以通過@Autowired註解將Spring容器中的對象注入到指定的位置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章