2
respostas

Faz sentido usar o Template Method em uma filha que não usa nada do "pai"?

Olá,

Para mim fez bastante sentido o uso da palavra reservada final na implementação do Template Method. Se uma classe "filha" tem uma lógica diferente para a implementação de seus métodos, e sobrescreve tudo o que o pai fez, fica difícil para mim acreditar que ela deva herdar da classe Template. Acredito que o padrão Template Method não deva ser usado nesses casos.

Por outro lado, o uso do Template Method força a essa classe filha implementar todos os métodos abstratos da classe pai, semelhante ao trabalho de uma interface. Não acredito que essa ligação "semântica" seja suficiente forte para ainda usar o Template Method nesses casos. Eu faria uma interface similar à classe de Template. Questão de gosto pessoal, talvez?

Quero saber o que vocês acham dessa abordagem. Prós/Contras?

2 respostas

Você está realmente correto na sua linha de raciocínio. Se uma classe filha reescreve completamente todos os métodos da classe pai, então porque ela irá herdar a classe pai?

Mas ainda assim, ela deve conter métodos com mesmos nomes, parâmetros de entrada e saída iguais. A solução pra isso, conforme você mesmo disse, é usar ter uma Interface acima delas.

Oi Glayderson o padrão não está realmente limitado a implementação se com classes abstratas ou interface o importante é que ele seja um template do comportamento que se repete.