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 Before(pre):在join point之前調用
l After(post):在join point 之後調用
l Around:advice控制對join point的調用
Pointcut:一組join point。
Introduction:給類或者接口增加方法或成員
Mixed inheritance:使用introduction方式來實現類似於多重繼承的功能
Weaving:將方面織入到程序執行流程中。