AOP及其實現(xiàn)機制的討論
(作者未知) 2010/6/6
摘 要:多數(shù)軟件系統(tǒng)都包括幾個跨越多個模塊的關(guān)注點(concern)。用面向?qū)ο蠹夹g(shù)實現(xiàn)這些關(guān)注點會使系統(tǒng)難以實現(xiàn),難以理解,并且不利于軟件的演進。新的面向方面的編程方式(aspect-oriented programming,AOP)利用模塊化來分離軟件中橫切多模塊的關(guān)注點。首先介紹了AOP的核心思想以及AOP語言的剖析、實現(xiàn)、好處,然后從側(cè)面代碼和功能代碼的編織問題討論了兩種AOP的實現(xiàn)機制的特點和比較,最后展望了AOP的發(fā)展方向。
關(guān)鍵字:AOP;側(cè)面代碼;功能代碼;編織;關(guān)注點
1 引言
面向?qū)ο蠹词购芎玫慕鉀Q了軟件系統(tǒng)中角色劃分的問題。借助于面向?qū)ο蟮姆治、設(shè)計和實現(xiàn),開發(fā)者可以將問題域的“名詞轉(zhuǎn)換成軟件系統(tǒng)中的對象,從而很自然地完成問題到軟件地轉(zhuǎn)換。但是,問題領(lǐng)域的某些需求卻偏偏不是用這樣地“名詞”描述地。人們認識到,傳統(tǒng)的程序經(jīng)常表現(xiàn)出來一些不能自然地適合單個程序模塊或者幾個緊密相關(guān)地程序模塊的行為,例如日志記錄、上下文敏感地錯誤、性能優(yōu)化以及設(shè)計模式等等。我們將這種行為稱為“橫切關(guān)注點(crosscutting concern)”,因為它跨越了給定編程模型中的典型職責(zé)界限。如果使用過于橫切關(guān)注點的代碼,您就會知道缺乏模塊所帶來的問題。因為橫切行為的實現(xiàn)是分散的,開發(fā)人員發(fā)現(xiàn)這種行為難以作邏輯思維、實現(xiàn)和更改。
因此,面向方面的編程(Aspect-Oriented Programming,AOP)應(yīng)用而生。1997年Gregor、Kiczales等人首次提出AOP的概念。AOP是目前被提議改善關(guān)注點分解的技術(shù),它提供了模塊化橫切關(guān)注點的能力,支持功能代碼和關(guān)注點即側(cè)面代碼的分離及自動合并,使程序更容易理解、設(shè)計、實現(xiàn)和維護,提供了更高的重用性和生產(chǎn)力,并獲得了更好的可跟蹤性和靈活性。
......
附件下載:點擊論文下載
|