estava estudando esse pattern e não vi muita diferença de usar ele ou uma classe abtrata com um metodo abstrato simples ,para ele pois se voce fizer uma classe abstrata com um metodo abstrato voce JA força a subclasse a implementar o comportamento… para que fazer um handler realmente não vi ultilidade.
se alguem puder me dizer agradeço.
A vantagem é justamente essa que você falou… não ser obrigado a implementar os métodos…
Imagine uma classe com 5 template methods… só que de acordo com o que voce deseja fazer voce nao precisaria implementar nenhum…
Voce teria na sua classe concreta 5 métodos vazios… caso usasse uma classe abstrata…
Cuidado para não utilizar demais esse padrão…Conheço sistemas que abusam dele resultando em uma explosão de subclasses :lol: …
voces nao entenderão a pergunta…
quero dizer qual a diferença de implementar o padrao template method e usar apenas uma classe abstrata normal… ao meu ver da na mesma… gostaria dessa diferença
[quote=Diabo Loiro]voces nao entenderão a pergunta…
quero dizer qual a diferença de implementar o padrao template method e usar apenas uma classe abstrata normal… ao meu ver da na mesma… gostaria dessa diferença[/quote]
Acho que você confundiu um pouco o conceito do pattern. No template method você vai ter uma classe abstrata de qualquer forma, a diferença é que você tem uma operação que não é abstrata e tem pontos onde a classe que herda que vai implementar. Vamos a um exemplo:
[code]
abstract class Xpto {
public void fazAlgumaCoisa() {
int a = 1;
metodo1(a);
int b = 2;
metodo2(b);
}
public abstract metodo1(int valor);
public abstract metodo2(int valor);
}[/code]
O método fazAlgumaCoisa() em Xpto é um template method, pois ele tem um algorítimo incompleto, com os pontos que permitem alteração. A classe que herdar Xpto deverá implementar metodo1 e metodo2 para prover a funcionalidade que está faltando.
Esse pattern geralmente é usado quando queremos estabelecer um design que segue o OCP (Open-Closed Principle) - http://www.objectmentor.com/resources/articles/ocp.pdf
[]s
ja deu uma explanada melhor thanks
Aqui eu falo bastante sobre isso:
Como o Breno falou, tem de tomar cuidado pra nao colocar heranca em tudo. O Strategy com um composite muitas vezes se encaixa melhor, com pouco codigo a mais.
[quote=Paulo Silveira]Aqui eu falo bastante sobre isso:
Como o Breno falou, tem de tomar cuidado pra nao colocar heranca em tudo. O Strategy com um composite muitas vezes se encaixa melhor, com pouco codigo a mais.[/quote]
Perfeito. Tinha até esquecido desse artigo da Caelum.
[]s