aop(面向切面編程) 和oop(面向對象編程) 一樣是一種編程思想,同時aop 是對oop 缺陷的補充。
oop 是由繼承、封裝、多態的概念來編寫代碼的,當使用oop 爲一些對象的方法添加公共行爲的時候(如日誌,事務,權限控制等),用oop 的思想就變得非常複雜了。
因爲這些對象分散在各各”角落”,項目小還好,如果項目打大,如果要給這些對象加上公共行爲的話,無疑是非常麻煩而又枯燥的。而且還增加了項目的依賴。而aop 把項目從上到下的執行突然切過,而且還不影響程序的正常運行,就是把這些切入的代碼刪除也不會影響到。
概念
在oop 中編寫代碼的規則是繼承、封裝、多態、抽象、而在aop 中如下:
術語 | 解釋 |
---|---|
通知 | 通知有執行前通知、返回後通知、執行後通知、異常通知 |
連接點 | 連接點是一個虛的概念,用來了解aop 而來的,而連接點就是一個程序的某個位置,如一個屬性、一個方法、一個構造函數 |
切入 | 切入指的是在某個連接點上加上通知,一個程序有多個連接點,但是我們想讓他執行通知的不是全部 |
切面 | 切面是通知和切入的組合 |
目標對象 | 目標對象其實就是一個連接點的集合 |