Strategy Projeto de Sistemas de Software

Slides:



Advertisements
Apresentações semelhantes
Carlos Roberto Marques Junior
Advertisements

Padrão de Projeto Iterator
Identificando requisitos
Centrado na arquitetura
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrão de Projeto Interpreter
Elisabeth Suescún Leandra Mara da Silva
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
Padrão Bridge (Handle/Body)
Elizabeth Suescún Monsalve
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
Projeto de Sistemas de Software Sérgio Luiz Ruivace Cerqueira
Carlos R. M. Junior Eduardo Motta
Aprendizado de Máquina
Projeto de Sistemas de Software
Padrões de Projeto Mediator.
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.
Padrão de Projeto Iterator
Padrão de Projeto Composite
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
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
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 - Strategy.
Padrões GoF - Façade.
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
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Strategy e Template Method
Fundamentos da Engenharia de Software
Padrões de projeto detalhados Factory Method, Abstract Factory
Singleton e Adapter Professor: Nazareno Andrade
Padrão de Projeto Visitor
Projeto de Sistemas de Software(PSS)
Projeto de Sistemas de Software
Chain of Responsibility
Design Patterns Bridge
Experimentação Algorítmica
Padrões de Projeto Abstract Factory.
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ões: Composite (p. 163) Objetivo: compor objetos em estruturas de árvores para representar relações de parte/todo. “Composite” permite tratar objetos.
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:
Padrão Composite Definição
Frameworks e Componentes Daniel Fernando Pavelec.
Jobson Ronan Padrões GoF Jobson Ronan
Arquitetura de Software Projetos de Interface
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.
Projeto de Arquitetura de Software
Design Patterns Mediator Projeto de Sistemas de Software Kelly Leal.
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.
1 Introdução aos Padrões de Projetos (na prática) Créditos: Adaptações: Prof. Nécio de Lima Veras.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Strategy Projeto de Sistemas de Software Evelin Carvalho Freire de Amorim Sérgio Luiz Ruivace Cerqueira

Strategy Propósito   Agrupar uma família de algoritmos, encapsulando  cada algoritmo. Cada algoritmo pode ser substituível um pelo outro o que torna possível o cliente variar entre qualquer dos algoritmos. © LES/PUC-Rio

Amarrar estas estratégias não é uma boa solução. Motivação Uma biblioteca de Aprendizado de Máquina (AM) pode ter diferentes estratégias para um problema de classificação. Amarrar estas estratégias não é uma boa solução. Diferentes algoritmos são apropriados em momentos diferentes. Uma árvore de decisão é pode ser mais apropriada para um tipo de problema e AdaBoost para outro. As estratégias de AM se tornam difíceis de mudar se fazem parte dos clientes. Os algoritmos de AM estão em constante processo de otimização. © LES/PUC-Rio

Quando as classes diferem apenas no comportamento. Aplicabilidade Quando as classes diferem apenas no comportamento. A necessidade de algoritmos com diferentes comportamentos. Quando o algoritmo utiliza dados que o cliente desconhece. Evita declarações condicionais encapsulando em classes Strategy. © LES/PUC-Rio

Estrutura © LES/PUC-Rio

Possui um objeto ConcreteStrategy. Participantes Strategy: Declara uma interface em comum para os algoritmos suportados. ConcreteStrategy: Implementa o algoritmo utilizando a interface Strategy.    Context: Possui um objeto ConcreteStrategy. Mantém referência para um objeto Strategy. Pode definir uma interface para Strategy acessar seus dados. © LES/PUC-Rio

Para escolher o algoritmo as classes Strategy e Context interagem. Colaborações Para escolher o algoritmo as classes Strategy e Context interagem.  O cliente cria e passa um objeto ConcreteStrategy para o Context. O cliente interage somente com o Context. © LES/PUC-Rio

Agrupar algoritmos relacionados Uma alternativa a subclasses Conseqüências Benefícios Agrupar algoritmos relacionados Uma alternativa a subclasses Eliminação  de declaração de condicionais Escolha de diferentes implementações   Desvantagens O cliente deve conhecer as diferentes estratégias Overhead de comunicação entre Strategy e Context Aumento do número de objetos © LES/PUC-Rio

Exemplo de Código

Exemplo de Código