AOP與OOP的區別
阿新 • • 發佈:2018-12-25
AOP: (Aspect Oriented Programming) 面向切面程式設計。是目前軟體開發中的一個熱點,也是Spring框架中容。利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率。主要的功能是:日誌記錄,效能統計,安全控制,事務處理,異常處理等等。
AOP、OOP在字面上雖然非常類似,但卻是面向不同領域的兩種設計思想。OOP(面向物件程式設計)針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯單元劃分。 而AOP則是針對業務處理過程中的切面進行提取,它所面對的是處理過程中的某個步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。這兩種設計思想在目標上有著本質的差異。
總之,AOP可以通過預編譯方式和執行期動態代理實現在不修改原始碼的情況下給程式動態統一新增功能的一種技術,把散落在程式中的公共部分提取出來,做成切面類,這樣的好處在於,程式碼的可重用,一旦涉及到該功能的需求發生變化,只要修改該程式碼就行,否則,你要到處修改,如果只要修改1、2處那還可以接受,萬一有1000處呢。
最常用的AOP應用在資料庫連線以及事務處理上。