"Modern C++ Design" (Andrei Alexandrescu) takes this extra step and attempts to
implement patterns using templates.  If you thought C++ had already gone too far
then this book should confirm this.

stephen