天天看點

Spring程式設計思想

AOP(Aspect Oriented Programming)

了解:提到AOP,我們都知道是面向切面程式設計,然後想到的就是動态代理,但是動态代理隻是AOP的一種技術實作手段,而AOP隻是一種程式設計思想。

案例1:我們去肯德基裡買一個漢堡,漢堡上面跟下面都是一塊面包,而中間還夾了雞肉層、奶油層、青菜層等。就是這麼一些原料組合起來,然後重新起個新的名字–漢堡,它的價值就貴了好幾倍。這展現了一種産品功能增強的思想。

案例2:螺絲跟螺帽的組合才能展現一件産品的價值,單有螺絲或單有螺帽都不是完美的産品。現在A公司隻生産螺帽,而B公司隻生産螺絲,雙方都是按照某一個規定去生産,這樣就能確定螺帽跟螺絲完美的組合。

Spring程式設計思想

總結: AOP是面向切面程式設計,也可以了解為是面向規則程式設計,它切面最大的特點就是功能增強、組合、解耦、制定規則。

OOP(Object Oriented Programming)

了解:面向對象程式設計(封裝、繼承、多态),用代碼去描述這個世界。

BOP(Bean Oriented Programming)

了解:原先java對象new個不停,然後不停的往屬性裡指派,spring覺得這樣特别不爽。spring覺得應該可以找到一種東西來描述bean與bean之間的關系,不希望每次人為的重複管理,而是由程式來實作自動管理。是以才有了面向bean程式設計,BOP。

IOC(Inversion of Control)

了解:控制反轉,建立對象的控制權(new)反轉。以前誰要用誰new,有了spring之後,所有的bean都由spring來new,是以才叫控制反轉。然後,new出來以後的對象需要統一的管理起來,是以才有了IOC容器。(Map)

DI(Dependency Injection)

了解:依賴注入,為了解決對象動态指派的問題(對象被spring管理了,對象與對象之間的關系需要維持起來),動态調用get、set方法(通過反射)

繼續閱讀