1. 程式人生 > >Aspect-Oriented Programming-Aop

Aspect-Oriented Programming-Aop

概念

AOP面向切面的程式設計,它是可以通過預編譯方式和執行期動態代理實現在不修改原始碼的情況下給程式動態統一新增功能的一種技術。它是一種新的方法論,它是對傳統OOP程式設計的一種補充。OOP是關注將需求功能劃分為不同的並且相對獨立,封裝良好的類,並讓它們有著屬於自己的行為,依靠繼承和多型等來定義彼此的關係;AOP是希望能夠將通用需求功能從不相關的類當中分離出來,能夠使得很多類共享一個行為,一旦發生變化,不必修改很多類,而只需要修改這個行為即可。AOP是使用切面(aspect)將橫切關注點模組化,OOP是使用類將狀態和行為模組化。在OOP的世界中,程式都是通過類和介面組織的,使用它們實現程式的核心業務邏輯是十分合適。但是對於實現橫切關注點(跨越應用程式多個模組的功能需求)則十分吃力,比如日誌記錄,許可權驗證,異常攔截等。

優勢

  • 將通用功能從業務邏輯中抽離出來,可以省略大量重複程式碼,有利於程式碼的操作和維護。
  • 在軟體設計時,抽出通用功能(切面),有利於軟體設計的模組化,降低軟體架構的複雜度。也就是說通用的功能都是一個單獨的模組,在專案的主業務裡面是看不到這些通用功能的設計程式碼的。