Padrões GoF - Strategy.

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Um pouco mais de cardinalidade e Relacionamentos
PADRÕES DE PROJETO..
Padrão de Projeto Interpreter
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
Projeto de Sistemas de Software Fernando de Freitas Silva
Strategy Projeto de Sistemas de Software
Padrões de Projeto Mediator.
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
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.
Eduardo Bezerra Padrões GoF (State) Eduardo Bezerra
Padrões GoF - Façade.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
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.
Padrões GoF – Factory Method
Chain of Responsibility
Padrões - introdução O que é um padrão?
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
Observer Mantendo seus objetos atualizados
A implementação de avaliação formativa na sala de aula
Strategy e Template Method
Aprendizado Baseado em Instâncias – Algoritmo k-NN
Padrões de projeto detalhados Factory Method, Abstract Factory
Singleton e Adapter Professor: Nazareno Andrade
Chain of Responsibility
Linguagens Orientadas a Objeto
Vânia Maria P. Vidal, José Maria Monteiro, Luís Eufrasio T. Neto
Programação Orientada à Objetos
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Sobre notas no Moodle Notas são pontuações atribuídas às avaliações de atividades dos participantes em um curso do Moodle, que são postadas no boletim,
Filter Design Pattern.
Processos.
1 Padrões de Software Padrões GoF (Parte 2) Eduardo Bezerra Outubro/2005.
Introdução Padrões de Projeto
Construtores e Destrutores
Padrões de Projeto Abstract Factory.
Padrões de Projeto.
Factory.
Algoritmos.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Iterator 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.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: AbstractMethod Professores Eduardo Bezerra –
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.
1 Padrão: Iterador (Iterator) Tipo - “Object behavioral” Objetivo - acessar um agregado sem expor a representação Outros nomes - Cursor.
Jobson Ronan Padrões GoF Jobson Ronan
Programação Computacional Aula 9: Meu primeiro programa em C
Trabalho de Persistência para o EPOS. Propostas para a Solução Proposta 1: Usar templates, para que quando o usuário deseje que um objeto seja persistente,
2 – Revisão de Programação Orientada a Objetos
Padrões de Projeto Aula 3 – Padrão Strategy.
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.
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
Padrões de Projeto Aula 4 – Padrão Observer. PADRÃO OBSERVER Como manter objetos atualizados quando algo importante ocorre? Padrões de Projeto - Observer.
Aula 5 – Padrão Decorator
Aula 6 – Padrão Factory Method
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
Padrões de Projeto Aula 9 – Padrão Adapter.
Projeto de Arquitetura de Software
Aula 7 – Padrão Abstract Factory
Aula 8 – Padrão Singleton
Padrões de Projeto Aula 3 – Padrão Strategy.
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
1 Introdução aos Padrões de Projetos (na prática) Créditos: Lúbia Vinhas Hazel Carvalho Crato Adaptações: Prof. Nécio de Lima Veras.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Padrões de Projeto Aula 5 – Padrão Decorator 1. QuickReview: Observer Definição: Quando usar? Tipo de padrão? Como? 2.
Arquitetura e padrões de software
Transcrição da apresentação:

Padrões GoF - Strategy

O Padrão Strategy O padrão Strategy é semelhante ao padrão Template Recordando: Template define em uma classe X um algoritmo composto por vários passos. Alguns desses passos são implementados de forma diferente nas subclasses de X. O padrão Strategy fornece diferentes implementações de um algoritmo para uma classe cliente. A classe cliente usa a implementação mais adequada em um dado instante. GOF Book: “Define a family of algorithms, encapsulate each one, and make them interchangeable. “Strategy lets the algorithm vary independently from clients that use it.”

Estrutura do Strategy

Objetos Participantes Strategy: Define uma interface comum para todos os algoritmos suportados. O objeto Context usa essa interface comum para chamar o algoritmo definido (implementado) por um objeto ConcreteStrategy. ConcreteStrategy Implementa o algoritmo usando a interface definida por Strategy Context É configurado com um objeto ConcreteStrategy Mantém uma referência para um objeto Strategy Pode definir uma interface que permite que o objeto Strategy faça acesso aos seus dados.

Strategy – exemplo Uma instituição de ensino utiliza uma forma de calcular o grau final de um aluno em uma disciplina cursada. Esse grau é uma letra: A, B, C, D ou E. Além disso, esse grau é calculado a partir de notas atribuídas a avaliações. O projetista identificou que, atualmente, cada nota varia na faixa de 0 até 10. No entanto, identificou que é comum a coordenação modificar a estratégia (algoritmo) de atribuição de graus a partir da notas das avaliações. Já existe uma classe (Participacao) que representa participações de alunos em uma disciplina. Qual o melhor projeto de classes para cálculo do grau?

Strategy – exemplo (cont.) Nessa solução, Participacao é uma classe que representa participações de alunos em uma disciplina e suas correspondentes avaliações em termos de notas. Além disso, a operação calcular retorna o grau do aluno.

Strategy – vantagens Uma vantagem dessa solução está na flexibilidade resultante. No exemplo, note que a região de código cliente não precisa ser alterada quando a forma de cálculo de grau tiver que ser alterada. Tudo que a região de código cliente conhece acerca da região de código fornecedora do serviço é que existe uma operação chamada calcular, que realizar o cálculo. A região de código cliente não sabe, e nem precisa saber, qual o objeto especifico que está fornecendo uma implementação dessa operação. O acoplamento abstrato é mantido entre os elementos envolvidos.