in reply to Open to debate on mixins and traits.
Providing this type of behaviour for your own classes can be done in 4 ways.
Shall we say that there are at least four ways :-)
Aspect Oriented Programming is an obvious fifth direction that some people are taking. Creating a new language that incorporated the cross-cutting concern (in AOP speak) as part of the core language would be a sixth. Sticking the common behaviour in a meta-class in those languages that support them would be a seventh.
Any more for any more?