I've written about the template method pattern before. For my money it's still a very useful pattern for building super lightweight frameworks and enabling the open-closed principle which states: Software entities (classes, modules, functions, etc.) should be open for extension, but closed for...