1. 程式人生 > >控制反轉(ioc)和 面向切面(AOP)

控制反轉(ioc)和 面向切面(AOP)

1. IOC(Inversion of control)不是技術,是一種程式設計思想。ioc意味著將設計好的物件交給容器控制,而不是傳統的在物件內部直接控制。

2. IOC(控制反轉)  ‘誰控制了誰 控制什麼 為什麼是反轉 那些方面反轉了’

        誰控制誰:IOC容器控制了物件

        控制什麼:控制了外部資源獲取

        為什麼是反轉:IOC容器幫助查詢及注入依賴物件,物件只是被動的接受依賴物件

        那些方面反轉:依賴物件獲取被反轉

DI(依賴注入):“誰依賴誰 為什麼需要依賴 誰注入誰 注入了什麼”

        誰依賴誰:應用程式依賴於ioc容器

        為什麼需要依賴:應用程式需要ioc容器來提供物件需要的外部資源

        誰注入誰:Ioc容器注入應用程式某個物件,應用程式依賴的物件

        注入了什麼:注入某個物件所需要的外部資源

3. AOP(面向切面):AOP是一種程式設計思想,在java中利用反射機制實現

    事先只需要考慮主流程,不需要考慮哪些不重要的流程。

    AOP不會把程式碼加到原始檔中,但是它最終會正確的影響機器程式碼