如何實現一個IOC容器?
阿新 • • 發佈:2022-04-08
IOC(Inversion of Control),意思是控制反轉,不是什麼技術,而是一種設計思想,IOC意味著將你設計好的物件交給容器控制,而不是傳統的在你的物件內部直接控制
在傳統的程式設計中,我們直接在物件內部通過new進行物件建立,是程式主動去建立依賴物件,而IOC是有專門的容器來進行物件的建立,即IOC容器來控制物件的建立。
在傳統的應用程式中,我們是在物件中主動控制去直接獲取依賴物件,這個是正轉,反轉是由容器來幫忙建立及注入依賴物件,在這個過程過程中,由容器幫我們查詢級注入依賴物件,物件只是被動的接受依賴物件。
1、先準備一個基本的容器物件,包含一些map結構的集合,用來方便後續過程中儲存具體的物件
2、進行配置檔案的讀取工作或者註解的解析工作,將需要建立的bean物件都封裝成BeanDefinition物件儲存在容器中
3、容器將封裝好的BeanDefinition物件通過反射的方式進行例項化,完成物件的例項化工作
4、進行物件的初始化操作,也就是給類中的對應屬性值就行設定,也就是進行依賴注入,完成整個物件的建立,變成一個完整的bean物件,儲存在容器的某個map結構中
5、通過容器物件來獲取物件,進行物件的獲取和邏輯處理工作
6、提供銷燬操作,當物件不用或者容器關閉的時候,將無用的物件進行銷燬