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

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

Strategy Projeto de Sistemas de Software

Apresentações semelhantes


Apresentação em tema: "Strategy Projeto de Sistemas de Software"— Transcrição da apresentação:

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

2 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

3 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

4 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

5 Estrutura © LES/PUC-Rio

6 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

7 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

8 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

9 Exemplo de Código

10 Exemplo de Código


Carregar ppt "Strategy Projeto de Sistemas de Software"

Apresentações semelhantes


Anúncios Google