Volkmann, Mark wrote:
> When AOP is not used there are basically two choices for implementing 
> functionality like logging, caching, persistence and other so called 
> crosscutting concerns.  You can implement them in every class that needs 
> them or implement them in a common base class.

In Ruby, couldn't you implement them in a mixin module?

> Implementing them in a common base class also has the problem of 
> assuming that reusers want the same implementation.  In addition, the 
> classes may not be related to each other in any way except for how they 
> wish to implement a given concern.

Again, this seems to call for a mixin to me.

I would also like to see a practical explanation of how AOP is useful, 
and how it is better than mixins and stuff.  The concept sounds 
interesting, but I've never seen a convincing argument for it, 
especially one that deals with the flaws.

The biggest problem I have with AOP is that it doesn't often seem to 
mesh well with the languages that it is applied to.  What I saw of the 
Ruby AspectR stuff is a prime example.

Ben