By no means am I an AOP expert, but the claims made by a recent “devx article”:http://www.devx.com/Java/Article/21463 (spotted thanks to “John Flinchbaugh(Dynamic Proxies)”:http://www.hjsoft.com/blog/showArticle.java?id=223 ). Entitled “Java Dynamic Proxies: One Step from Aspect-oriented Programming” made me want to comment. It claims that:
…once you understand proxies, you’ve made a small conceptual leap towards the bigger pictureaspect-oriented programming (AOP)
Firstly, dynamic proxies, have nothng to do with AOP. Sure, they can be used to accomplish some AOP goals in the way they allow code to be dynamically wrapped around methods, but they are a means to an end. AspectJ doesn’t even use dynamic proxies – it inserts Aspects using compile-time sourcecode manipulation. The use of dynamic proxies in AOP is an implementation detail, not something inherent in the use of AOP.
You might gain some understanding as to how some of the AOP frameworks implement Aspects by learning about dynamic proxies, and you might even get a good feeling of the power provided by dynamically inserting code, but you are a long way from fully understanding the complexities of AOP.