【Java高級工程師蛻變之路】008 Spring核心思想

IOC

ioc不是spring提出的,spring只是ioc的一個實現

什麼ioc

ioc(inversion of control)控制反轉,他是一個技術思想,不是技術實現

ioc是做什麼的

java領域對象的創建、管理問題

傳統開發方式:類A依賴類B,在類中創建一個類B的對象

IOC開發方式:不需要創建對象,由容器幫忙創建對象並返回,需要哪個對象告訴IOC容器,由容器返回即可

利弊:失去了創建對象的權利,但是同時也得到了不需要管理對象創建、依賴等一系列好處

爲什麼叫控制反轉

控制:對象的創建管理和實例化的權利

反轉:控制權交給IOC容器了

IOC解決了什麼問題

ioc解決了對象之間的耦合問題

IOC和DI的區別

DI:Dependency Injection 依賴注入

IOC和DI描述的是同一件事情(對象實例化以及依賴關係管理),角度不同

IOC站在對象角度,對象實例化和管理法人權利交給了容器

DI是站在容器的角度,容器會把對象依賴的其他對象注入

AOP

什麼是AOP

Aspect oriented programming 面向切面編程

AOP是OOP的眼神

OOP三大特徵:封裝、繼承、多態

OOP是垂直縱向繼承體系

OOP可以解決大部分情況下的代碼重複問題,但是有些問題解決不了

橫切邏輯代碼的問題

  • 代碼重複

  • 橫切代碼和邏輯代碼混合在一起,不利於維護

    AOP可以解決

AOP解決了什麼問題

在不改變原有代碼邏輯的情況下,增強橫切邏輯代碼,根本上解耦合,解決代碼重複問題

爲什麼叫面向切面編程

切:橫切邏輯,原有邏輯代碼不能動,只能操作橫切邏輯

面:橫切邏影響很多方法,每個方法是一個點,多個點構成面

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