A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Template Method Projeto de Sistemas de Software Sérgio Luiz Ruivace Cerqueira.

Apresentações semelhantes


Apresentação em tema: "Template Method Projeto de Sistemas de Software Sérgio Luiz Ruivace Cerqueira."— Transcrição da apresentação:

1 Template Method Projeto de Sistemas de Software Sérgio Luiz Ruivace Cerqueira

2 © LES/PUC-Rio Propósito Esse padrão define que sejam implementadas certas partes de um algoritmo na classe abstrata e as que não foram implementadas devem ser nas classes filhas concretas. Assim, é possível aplicar determinados comportamentos no algoritmo e reusar o mesmo algoritmo, de acordo com as classes filhas.

3 © LES/PUC-Rio Motivação Considere um framework para jogos de tabuleiro. A classe Jogo têm os métodos abstratos: inicializarJogo(), fazerJogada(Jogador), fimJogo() e imprimirGanhador() O método template é jogarPartida(Jogadores). Esse método inicializa a partida e enquanto o jogo não termina um jogador faz uma jogada. No final o vencedor é impresso. Dessa forma é possível criar diversos jogos diferentes reutilizando o algoritmo de jogar uma partida.

4 © LES/PUC-Rio Aplicabilidade Útil para a implementação de frameworks e aplicações flexíveis. Pode ser utilizado para implementar as partes invariantes de um algoritmo uma só vez e deixar para as subclasses a implementação do comportamento que pode variar Quando classes contem código replicado, esse padrão pode ser usado para fundir o código repetido e deixar as subclasses implementarem as variações. Além de poder ser usado para controlar extensões de subclasses.

5 © LES/PUC-Rio Estrutura

6 © LES/PUC-Rio Participantes AbstractClass –Define métodos abstratos que as subclasses concretas implementam. –Implementa um método concreto template que contem o esqueleto de um algoritmo. –Além disso o método template invoca os métodos necessários para a execução do algoritmo inclusive os métodos abstratos, que são implementados nas subclasses concretas. ConcreteClass –Implementa os métodos abstratos necessários para a execução do método template. –Redefine métodos da AbstractClass.

7 © LES/PUC-Rio Colaborações ConcreteClass faz uma chamada à AbstractClass, que contem o esqueleto do algoritmo, após isso o templateMethod() faz as devidas chamadas à ConcreteClass.

8 © LES/PUC-Rio Conseqüências Facilita a reutilização de código Inversão de Controle (IoC) Os desenvolvedores são obrigados a saber quais classes devem e quais podem ser redefinidas.

9 © LES/PUC-Rio Código de Exemplo

10 © LES/PUC-Rio Código de Exemplo

11 © LES/PUC-Rio Referencias Gamma et al., Padrões de Projeto - soluções reutilizáveis de software orientado a objetos, Porto Alegre : Bookman, Wikpedia, Template method pattern, acessado em 5 de abril de 2009.


Carregar ppt "Template Method Projeto de Sistemas de Software Sérgio Luiz Ruivace Cerqueira."

Apresentações semelhantes


Anúncios Google