The first technique I'd like to discuss deals with creating more easily extensible classes.
By extensible, I mean classes that are easy for other users to extend in any way they see fit.
I'd like to give a warning now that the rest of the presentation is very code heavy. I'll try to give you enough time to read the code on the slides before I talk about it, but if you want more time, just speak up.