O padrão Template Method é uma técnica muito utilizada para obtenção da reutilização de código. O comportamento do método template é basicamente a inversão do controle da aplicação, ou seja, a classe-pai chama os métodos da classe-filha e não o inverso. Processo conhecido como o Princípio de Hollywood, “não nos chame, nós chamaremos você”. [GAMMA, 2000 apud SWEET, 1985]
O método template permite que o comportamento padrão (invariante) seja implementado somente uma vez pela superclasse e o comportamento especifico (variante) seja implementado em cada subclasse que estende o framework.
Uma forma de controle das extensões de subclasses são os métodos gancho (hook methods, em inglês). É possível então criar um método template que chama os métodos gancho, permitindo um controle do comportamento somente nestes pontos.

Conforme a Figura 1, o método template de Classe_Abstrata faz chamadas aos métodos gancho, operação_1() e operação_2(), na sua implementação. Contudo a implementação dos métodos gancho não será feita na superclasse. Cada subclasse é, portanto responsável por implementar o seu comportamento especifico.
Exemplo de código em C++http://getfilehosting.com/file/83/template-method.zip.html
Referência Bibliográfica:
GAMMA, Erich; HELM, Richard; JOHNSON, Ralph; VLISSIDES, John. Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos. Ed. Bookman. 2000. Porto Alegre.