TemplateMethod Flashcards
Quando usar o TemplateMethod?
Este padrão é aplicável quando se deseja definir um algoritmo geral, que estabelece uma série de passos para cumprir um requisito da aplicação. Porém, seus passos podem variar e é desejável que a estrutura da implementação forneça uma forma para que eles sejam facilmente substituídos.
Qual a solução proposta pelo TemplateMethod?
Criar uma superclasse abstrata com o template e os hookmethods que serão implementados por uma subclasse
Qual as consequências positiva de utilizar o TemplateMethod?
Podemos reaproveitar o código relativo à parte comum de um algoritmo, permitindo que cada passo variável possa ser definido na subclasse.
Isso também é uma forma de permitir que a funcionalidade da classe que define o
algoritmo básico seja estendida. Assim é possível definir uma funcionalidade mais
geral na qual pode ser facilmente incorporada a parte específica do domínio da aplicação.
Quas as consequências negativas de utilizar o TemplateMethod?
A primeira é que a herança “é uma carta que só pode ser jogada uma vez”, isso significa que uma classe que precise de comportamentos de duas outras classes só poderá fazer o uso da herança para uma delas.
Outra questão é que depois que uma implementação for instanciada não será mais possível alterar os passos do algoritmo.