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

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

Padrões GoF - Strategy.

Apresentações semelhantes


Apresentação em tema: "Padrões GoF - Strategy."— Transcrição da apresentação:

1 Padrões GoF - Strategy

2 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.”

3 Estrutura do Strategy

4 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.

5 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?

6 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.

7 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.


Carregar ppt "Padrões GoF - Strategy."

Apresentações semelhantes


Anúncios Google