Projeto de Sistemas de Software Sérgio Luiz Ruivace Cerqueira

Slides:



Advertisements
Apresentações semelhantes
Procedimentos e Funções
Advertisements

PADRÕES DE PROJETO..
Design Patterns Patrícia Mateus nº3343 Carla Guerreiro nº3157
Design Patterns Builder Pattern
Factory Method Projeto de Sistemas de Software
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
1 Builder Padrões de projeto Projeto de Sistemas de Software Aleksander Bruno Gadelha Setembro, 2008.
Projeto de Sistemas de Software Hazel, Juliana e Luana
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto
Carlos R. M. Junior Eduardo Motta
Strategy Projeto de Sistemas de Software
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrões de Projeto Mediator.
Projeto de Sistemas de Software
Padrões de Projeto Prototype.
Padrões de Projeto Adapter.
Metodologias Equipe do Curso de ES para SMA
Design Patterns Interpreter
Abstract Factory – Gustavo Lopes Mourad.
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Template Method Projeto de Sistemas de Software. © LES/PUC-Rio Template Method Motivação.
Projeto de Sistemas de Software Leandra Mara da Silva
Padrão Abstract Factory
Padrões Arquiteturais
Aline Vasconcelos D.Sc. em Sistemas e Computação/COPPE UFRJ
APSI III Aline Vasconcelos
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Template Method Intenção: definir o esqueleto de um algoritmo em uma operação, postergando (delegando) a definição de alguns passos desse algoritmo para.
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
Padrão de Projeto Chain of Responsability e Template Method
Frameworks - Introdução
Strategy e Template Method
Programação Orientada a Objetos com Java
Módulo III Padrões GOF Professores
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Chain of Responsibility
Padrão de Projeto Iterator
Design Patterns Bridge
The art of Unit Testing. Unit testing O Um teste unitário é uma parte de código (geralmente um método/função), que invoca outra parte de codigo e verifica.
Decorator POO - Avançado.
Interfaces POO Avançado.
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Trabalho Final de Padrões de Projeto
Padrões de Projeto Abstract Factory.
Design Patterns Fundamentos da engenharia de softaware. 19/1/2003.
Factory.
Padrão de desenvolvimento
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
1 Design Patterns Israel Rios. 2 Origens A idéia de padrões de projeto não teve origem na ciência da computação Christopher Alexander A Pattern Language:
Objetos Distribuídos Frameworks Orientados a Objetos.
Frameworks e Componentes Daniel Fernando Pavelec.
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS PARTE 1: INTRODUÇÃO Prof. Cesar Augusto Tacla UTFPR/Campus.
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
Design Patterns Mediator Projeto de Sistemas de Software Kelly Leal.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Transcrição da apresentação:

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

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. © 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. © 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. © LES/PUC-Rio

Estrutura © LES/PUC-Rio

Participantes AbstractClass ConcreteClass 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. © 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. © 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. © LES/PUC-Rio

Código de Exemplo © LES/PUC-Rio

Código de Exemplo © LES/PUC-Rio

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