Template Method e Classe Abastrata - qual a diferença?
5 respostas
D
dtomazzoni
Olá Pessoal, primeiramente desculpe a pergunta que para vocês deve ser besta.
Estou estudando java na universidade e fazendo um trabalho sobre template method, e não consegui diferenciar o padrão de projeto template method de uma classe abstrata.
classe abstrata pode ter métodos concretos e/ou abstratos (métodos sem implementação)
D
dtomazzoni
Alberes me desculpe mas sou iniciante então a tua resposta não me ajudou muito…
tnaires
Basicamente, uma classe abstrata pode usar um ou mais template methods, que são, de forma muito simplória, métodos abstratos utilizados para executar alguma tarefa na superclasse que são definidos apenas nas subclasses.
O exemplo pode não ter sido muito adequado, mas foi a única coisa que eu consegui bolar agora :oops:
D
dtomazzoni
Obrigado Tnaires, já me ajudou bastante!
Na verdade então o Template Method nada mais é do que metodos abstratos que estão em uma classe abastrata que serao reescritos com diferentes funções em outras subclasses, correto?
Obrigado!
tnaires
Não é só isso. Isso aí é mais ou menos a definição de método abstrato. Para um método abstrato ser um template method, ele deve ser chamado de forma explícita na superclasse.
Veja por exemplo o método doBeforePost(). Ele está sendo chamado dentro do método post(); se não houvesse essa chamada, ele seria um método abstrato comum.