Aspect-Oriented Programming (AOP)
I couldn't finish this article without talking a little about aspect-oriented programming (AOP). AOP is to object-oriented (OO) programming what OO was to procedural languagesa paradigm shift. Aspects provide the ability to add crosscutting code to our systems, defining code that applies to sets of classes, cutting across module and class boundaries. They provide the facilities we need to write really good OO code, by providing a way to step out of the OO system to a higher level of abstraction.
The best way for a Java developer to get into the AOP thing is to download AspectJ. This open source tool is from Xerox Parc Palo Alto Research Center.