aop
,aspect-oriented programming
,面向切面程式設計,這個名詞這幾年非常流行,主要因為它是程式設計方法上的乙個重大突破,或者說是一次巨大創新,當前流行的物件導向程式設計,通過其封裝特性,將同類事物的共同屬性和行為封裝到乙個類中,從而實現抽象物件共同行為的目的,但是當不同模組或不同類的物件具有某一共同的行為,而我們需要對這些物件的共同行為進行統一控制時,物件導向方法就顯得無能為力,在
aop沒有出現前,我們採取的方法只能是在需要的地方編寫重複**
,這樣編寫程式
不利於**的復用,也不方便對這些共同行為進行控制。
而aop
的出現正好解決了這一問題,可以說是物件導向的乙個重要的補充。
aop利用其橫切技術,剖開那些物件的內部,將那些代表共同行為的**統一抽取出來,封裝到乙個可重用模組(最簡單的情況也就是乙個類,類中封裝了那些行為**)中,這個可重用模組就是「切面」。
這裡說的具有共同行為**,究竟是些什麼**呢?
大家都知道,乙個複雜的系統一般可以看成由多個關注點組成的,而乙個系統有多個方面的關注點,包括業務邏輯,效能,資料儲存,日誌資訊,異常資訊,安全,許可權,執行緒,通訊等多方面。但是總的來說,主要可以分為兩個方面的關注點,核心關注點和非核心關注點。核心關注點就是系統的核心業務邏輯,這在每個模組都各不相同,都有自己不同的實現,而非核心關注點,像日誌資訊,許可權控制,資料儲存等有很多共同之處,這些都可以通過切面程式設計,這些就是具有共同行為的**,這些關注點我們常稱為橫切關注點。
歸納總結一下,可以很清楚什麼場合需要面向切面程式設計(
aop)
: 那就是非核心關注點的地方。
總的來說
aop的好處是:
1.解耦。切面將非業務**從各模組抽出來,降低了模組間的耦合度。
2.切面將不同模組共同的與業務無關的**封裝起來,減少了重複**。
3.維護方便,將橫切關注點統一到乙個模組管理,修改更新方便,不影響其他業務模組。
4.開發分工合作方便,可安排乙個人專門複雜橫切模組的開發。
5.節約成本。
aop出現前,需要編寫大量重複**,無論編碼和維護都需要付出不少人力成本。
AOP面向切面程式設計(個人理解)
面向切面程式設計的目標就是分離關注點。什麼是關注點呢,就是你要做的事,就是關注點。假如你是個公子哥,沒啥人生目標,天天就是衣來伸手,飯來張口,整天只知道玩一件事!那麼,每天你一睜眼,就光想著吃完飯就去玩 你必須要做的事 但是在玩之前,你還需要穿衣服 穿鞋子 疊好被子 做飯等等等等事情,這些事情就是你...
簡單理解AOP(面向切面程式設計)
aop為aspect oriented programming的縮寫,意為 面向切面程式設計,通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop與oop是面向不同領域的兩種設計思想。oop 物件導向程式設計 針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯...
簡單理解AOP(面向切面程式設計)
aop為aspect oriented programming的縮寫,意為 面向切面程式設計,通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop與oop是面向不同領域的兩種設計思想。oop 物件導向程式設計 針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯...