Today, for the first time, I used another concept which I've only seen implemented in PLT Scheme: mixins.
The idea behind a mixin is simple, but unexpected: you write code that has a parameterized superclass. And then, at run time, pass in the super class you'd like your code to use. Or as stated here:
We're taking in a superclass, and "mixing in" a few more methods to create a new class.
Even if you don't program in Scheme, it's worth taking a few minutes out and reviewing that recipe. Just like pubment, it's good to remind yourself that there's more to OO than Classes, Interfaces, Methods and Fields.
Perhaps what I like most about mixins is that they have the same play-doh feel that most of Scheme does. Want to, at run time, generate a class dynamically? No problem, easy to do. It's just a whole lot more flexible than the the Java OO world I've spent quite a bit of time in.