Sometimes Your Team Isn’t Ready

A great paragraph from Refactoring To Patterns (italics are mine):

Refactoring embellishments out of a class can produce a design that is simple to those who are comfortable with object composition. To those who aren't, code that used to be in one class is now spread out across many classes. Such a separation may make code harder to understand since because it no longer resides in one place. In addition, having code reside in different objects can make it harder to debug because debugging sessions must go through one or more Decorators before getting to a decorated object. In short, if a team isn't comfortable with using object composition to "decorate" objects, the team may not be ready for this pattern.

Its great to see acknowledgement that some teams just aren’t ready for some object oriented designs.  Part of being pragmatic means acknowledging the strengths of your team, not being clever for the sake of showing off.  By all means seek to improve your teams skills, but realise that you can’t force them to understand.  In such cases you need to go with a design that is easily understood, in order for it to be maintainable.