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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 1 Padrões GoF - Strategy

2 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 3 Estrutura do Strategy

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

Apresentações semelhantes


Anúncios Google