Strategy Pattern

Neste design pattern, o comportamento da classe ou do seu algoritmo é modificado durante a execução. No Strategy Pattern, criamos objetos que podem possuir várias representações, cada uma com um comportamento diferente, de acordo com a estratégia adotada.
Um dos exemplos mais comuns para este tipo de Design Pattern é o das Notas Fiscais: Uma loja existe em diversos Estados do Brasil. Em qualquer uma delas, o cliente pode comprar alguma coisa e o procedimento (rotinas) de compra é o mesmo. A diferença vem apenas no calculo das Notas Fiscais. Supondo que o calculo seja igual para os Estados de MG, SP e SC, mas é diferente para o AC.

Neste caso, criamos uma interface que abstrai o procedimento de criação das compras e classes que implementam esta abstrações.

Considere a lista abaixo como um checklist de implantação do Strategy Pattern:
– Identifique o comportamento que inconstante (suscetível a mudanças) e o ponto em que este comportamento interage com o resto da aplicação;
– Crie as assinaturas dos métodos em uma interface;
– Implemente as diversas possibilidades de cada método (da interface) em classes diferentes;
– Quem consumir este método, deve tratar direto com a interface;

Exemplo Prático:
Passageiro vai escolher um transporte do Aeroporto até a cidade. Ele pode escolher entre Ônibus, Carro Pessoal ou Taxi, dependendo do tempo, dinheiro e conveniência que ele quer.

  • Interface “Transporte”

 

  • Implemente as interfaces

 

  • Agora você deve definir como o código gerado com o Strategy Pattern vai ser implementado no seu sistema. Talvez com o padrão Builder ou Factory…

 

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Conhecimento Técnico, Dev and tagged , , .