C++怎么實現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工具。
那么對于C++技術來說,怎樣來開展AOP呢,幸好有Olaf Spinczyk 這樣的人存在,我們也有了aspect c++。它使用了插入代碼的方法。一個典型的Aspect C++示例需要一個C++源文件(.cpp)、一個aspect C++源文件(.ah),通過ac++編譯器把C++源文件和aspect C++源文件轉換成混合的C++源文件(如果有頭文件也會轉換),最后通過普通的C++編譯器編譯出可執行文件。
那么我現在如果不想用第三方編譯器,自己去實現AOP,不知道CPPBLOG里的大蝦有什么想法?
posted on 2007-12-14 14:02 攀升 閱讀(4548) 評論(5) 編輯 收藏 引用 所屬分類: C/C++