不能不知道的AOP概念

Concern一個特定的問題,關注點。這並不是AOP中才有的概念,OO中也有concern,只不過是採用OO的方法來實現。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Crosscutting concern:其實現切過了多個類的concern,比如安全檢查,事務處理等。

Aspect:模塊化的crosscutting concern。也就是將安全檢查之類的在許多類中都要用到的通用功能,用統一的模塊化的代碼加以提取實現。這就是所謂的方面。這其實也可以使用面向對象的方式來實現,只不過在AOP中不需要在用到這些功能的地方進行顯示調用。對於業務程序員,方面模塊是透明的。

Join point:程序執行過程中的連接點,切換點。AOP就是在這些點中打入鍥子,將aspect(方面)切入到連接點中,包括三種:

l         方法調用點

l         field訪問點

l         異常拋出點

Advice:也就是aspect的具體實現,在join point中插入的東西,在程序執行到join point的時候,會執行advice。很多AOP框架中使用interceptor(解釋器)來實現。三種類型:

l         Beforepre):在join point之前調用

l         Afterpost):在join point 之後調用

l         Aroundadvice控制對join point的調用

 

Pointcut一組join point

Introduction給類或者接口增加方法或成員

Mixed inheritance:使用introduction方式來實現類似於多重繼承的功能

Weaving:將方面織入到程序執行流程中。

發佈了31 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章