Related link: http://www.neward.net/ted/weblog?date=20030107
Recently, a number of authors and writers have been talking about AOP (Aspect-Oriented Programming), and how incredibly powerful and wonderful the whole thing is. And yet, for the vast majority of them, what they’re really referring to is an old pattern called Interception. These people aren’t stupid, nor are they misguided; while Interception is a powerful mechanism in its own right, it’s not the same as AOP, and while they do share a number of defining characteristics, to understand AOP as Interception is like thinking OOP is data structs plus a bunch of function pointers. Just as we didn’t understand objects until we got past the idea that objects are “just code and data”, if we’re to truly understand the potential power inherent in AOP, we need to get beyond this thinking that Interception and AOP are the same thing. They’re obviously related at some points, but that’s not the same thing as equality.