nQuando
queremos implementar partes invariáveis de um algoritmo e deixar que as subclasses implementem os comportamentos variáveis;
nQuando
comportamentos comuns entre subclasses devem ser fatorados e localizados em uma superclasse comum.
nevitando assim duplicação de código;
nQuando queremos controlar a extensão das
subclasses.
nPode-se
definir um template method que chama hook operations em pontos específicos, permitindo desse modo extensões apenas nesses pontos.