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