Neste artigo vamos recordar o padrão Strategy e uma aplicação prática bem simples mostrando sua utilização. |
Vamos começar com a definição clássica:
"O padrão Strategy define uma família de algoritmos , encapsula cada um deles , e torna-os intercambiáveis, permitindo assim que os algoritmos variem independentemente dos clientes que os utilizam"
na verdade isso significa que :
"O padrão Strategy define uma familia de algoritmos intercambiáveis de forma que estes sejam independentes dos clientes que os utilizam. "
Ou tentando ser mais objetivo :
|
O pulo do gato para usar o padrão Strategy é perceber o que pode mudar no seu código e encapsular.
Vejamos alguns cenários onde o padrão pode ser aplicado:
O esquema UML do padrão pode ser visto abaixo:
Strategy - Interface comum para todas as classes (variações concretas) que definem os diversos comportamentos esperados;
ConcreteStrategy - Classes que implementam os algoritmos que devem atender a cada contexto;
Context - Classe onde os objetos ConcreteStrategy serão instanciados;
Aplicando o padrão Strategy - Calculadora Estratégica
Vamos agora aplicar o padrão Strategy e definir um programa que realize as quatro operações básicas: somar, subtrair, dividir e multiplar.
Crie um projeto do tipo Console App (.NET Framework) no VS 2017 Community.
1- Definindo o Context - A classe onde os objetos concretos serão instanciados
2- Definindo a Strategy - A interface comum para todas as classes que define o comportamento esperado:
3- Definindo a ConcreteStrategy - As classes que implementam os algoritmos que atendem a cada contexto:
No método Main() inclua o código para que o usuário informe os valores e as opções para escolher qual operação deseja realizar:
static
void Main(string[] args)
Console.WriteLine("Erro na operacao : " +
ex.InnerException); |
Em cada opção crie uma instância da classe Calcular() que é o usuário do algoritmo que é intercambiável.
Calcular calculadora = new Calcular();
E use a propriedade Calculadora desta classe para ser configurada em tempo de execução de acordo com o algorítmo necessário para realizar a operação escolhida:
calculadora.calcular = new Algoritmo();
A final invoque o método CalcularOperacao() passando os valores informados pelo usuário que os aplicará ao respectivo algorítmo retornando o valor.
Executando o projeto teremos:
Assim, o padrão
Strategy te conduz a
seguinte orientação:
1 - Programe sempre
para interfaces;
2 - Dê preferência a composição ao invés de herança;
Pegue o código completo aqui: Calc_Strategy.zip
(disse Jesus) - "E a vida
eterna é esta: que te conheçam, a ti só, por único Deus
verdadeiro, e a Jesus Cristo, a quem enviaste."
João 17:3
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Encapsulation and Inheritance in Object-Oriented Programming Languages
O padrão Strategy : utilização - Macoratti
NET - Usando padrões de projeto e princípios OOP na ... - Macoratti
C# - Boas Práticas : Aprendendo com maus exemplos ... - Macoratti
NET - O padrão de projeto Mediator - Macoratti
NET - Design Patterns - Uma abordagem Prática - Macoratti