Spring(1)理解控制反轉(IOC)、依賴注入(DI)

記得剛開始學習Spring的時候,那時候Spring的版本還是比較低的,最近工作不忙在複習一下,歲數大了,記憶力大不如從前,所以記錄下自己整理的東西。如有錯誤請指正。

控制反轉(IOC)

控制什麼?反轉什麼?我的理解,集中管理控制對象(工廠模式),反轉對象獲取方式,反轉之前我們是主動通過“new”關鍵字創建對象,反轉之後我們接收IOC提供的對象。
舉個例子:

喫餃子,如果沒有餃子怎麼辦?

未使用IOC之前:

自己食材,自己動手,豐衣足食,我的餃子我做主,鹹了淡了你們管不着。
自己做餃子截圖
使用IOC之後:
不用自己做,告訴餃子館,我想喫韭菜雞蛋的餃子,餃子館做好餃子送到家。
控制反轉截圖
在這個例子中,使用控制反轉(IOC),告訴餃子館,我(對象)想喫餃子(對象)。最終我會得到餃子館(對象工廠)送來的餃子。這樣,我免去擀餃子皮、躲餃子餡、煮餃子,等一系列的操作,同時也不必擔心自己的廚藝不佳,導致自己難以下嚥。
對應上控制反轉(IOC),反轉的什麼,其實反轉的餃子的獲取方式。那餃子館來控制管理各式各樣的餃子。
寫到這裏,控制反轉(IOC),它不是一種技術,是一種思想,使用控制反轉(IOC)集中管理控制對象,可以使對象和對象之間鬆散耦合,有利於功能的複用。

依賴注入

誰依賴誰?誰注入誰?我的理解,依賴注入,其實就是動態向某個對象提供它所需要的對象。上門喫餃子的例子,我依賴與餃子館,餃子館提供餃子給我。
在程序中的,依賴注入有幾種方式:

構造器注入
set方法注入
基於註解

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