AOP概述 AOP技術的誕生並不算晚,早在1990年開始,來自Xerox Palo Alto Research Lab(即PARC)的研究人員就對面向對象思想的局限性進行了分析。他們研究出了一種新的編程思想,藉助這一思想或許可以通過減少代碼重覆模塊從而幫助開發人員提高工作效率。隨著研究的逐漸深入,A ...
AOP概述
AOP技術的誕生並不算晚,早在1990年開始,來自Xerox Palo Alto Research Lab(即PARC)的研究人員就對面向對象思想的局限性進行了分析。他們研究出了一種新的編程思想,藉助這一思想或許可以通過減少代碼重覆模塊從而幫助開發人員提高工作效率。隨著研究的逐漸深入,AOP也逐漸發展成一套完整的程式設計思想,各種應用AOP的技術也應運而生。
AOP技術在Java平臺下是最先得到應用的。就在PARC對於面向方面編程進行研究的同時,美國Northeastern University的博士生Cristina Lopes和其同事也開始了類似的思考。最終,美國國防先進技術研究計劃署(Defense Advanced Research Projects Agency即DARPA)註意到了這項工作,並提供了科研經費,鼓勵將二者的工作成果結合起來。他們通過定義一套Java語言的擴展系統,使開發者可以方便的進行面向方面的開發,這套擴展系統被稱為AspectJ。之後,AspectJ在2002年被轉讓給Eclipse Foundation,從而成為在開源社區中AOP技術的先鋒,也是目前最為流行的AOP工具。
AOP(Aspect-Oriented Programming,面向切麵的編程),它是可以通過預編譯方式和運行期動態代理實現在不修改源代碼的情況下給程式動態統一添加功能的一種技術。它是一種新的方法論,它是對傳統OOP編程的一種補充。OOP是關註將需求功能劃分為不同的並且相對獨立,封裝良好的類,並讓它們有著屬於自己的行為,依靠繼承和多態等來定義彼此的關係;AOP是希望能夠將通用需求功能從不相關的類當中分離出來,能夠使得很多類共用一個行為,一旦發生變化,不必修改很多類,而只需要修改這個行為即可。AOP是使用切麵(aspect)將橫切關註點模塊化,OOP是使用類將狀態和行為模塊化。在OOP的世界中,程式都是通過類和介面組織的,使用它們實現程式的核心業務邏輯是十分合適。但是對於實現橫切關註點(跨越應用程式多個模塊的功能需求)則十分吃力,比如日誌記錄,許可權驗證,異常攔截等。
Spring.NET 中的 AOP
通知(Advice): 通知描述了切麵要完成的任務,同時還描述了何時執行這個任務。
連接點(Joinpoint): 程式中應用通知的地方稱為連接點,這個點可以是方法被調用時,異常拋出時,甚至訪問屬性的時候。
切入點(Pointcut): 切入點定義通知切入的一個或者多個連接點。
切麵(Aspect): 切麵就是通知和切入點的結合。通知和切入點共同定義了切麵的全部內容:功能、時機、位置。
引入(Introduction): 允許我們想現有類中增加屬性和方法.
目標(Target): 被通知的對象
代理(Porxy): 向目標對象增加通知之後,創建的對象,由這個對象來訪問實際的目標對象。
織入(Weaving): 被切麵應用到目標對象來創建新的代理對象的過程。
配置型 ? no,這不是我需要的太麻煩了。對於新手瞬間懵逼了好嗎?
PostSharp
傳送地址 ->>>>>>>>>>>>>>> http://www.cnblogs.com/leoo2sk/archive/2010/11/30/aop-postsharp.html
我們看這個AOP , 發現挺適合的......最後MDZZ,收費.收費的,收費的搞毛線啊~~~~~
推薦新手的AOP
TM逗我? just like PostSharp, but free as in free beer :和PostSharp 一樣,但勝在免費。是不是愛上我了?嘿嘿,愛上作者去吧。
Nuget:上安裝這個,看清楚了呀,等會又來說,誒喲,樓主MDZZ不行啊!
示列:
感覺屬性不夠 ? 進階者的AOP --作者也開源了^.^
SheepAspect : SAQL尋找方法規則