O Padrão Strategy define uma familia de algorimos, encapsula cada um deles e os torna intercambiáveis.
A estratégia deixa o algoritimo variar independentemente dos clientes que o utilizam (use a cabeça use padrão de projeto)
Ah!!! vamos tentar novamente
O Padrão Strategy, garante que toda classe tenha um método, independente de como ele implementa.
Todo animal faz um som, então usando o padrão strategy podemos garantir que todos os animais vão fazer isso, mesmo que cada animal faça alguma coisa diferente.
//Animal.cs inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Strategy
{
interface Animal
{
void MakeSound();
}
}
//Animal.cs Fim
//Dog.cs inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Strategy
{
class Dog : Animal
{
public void MakeSound()
{
Console.WriteLine("Au");
}
}
}
//Dog.cs Fim
//Cat.cs Inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Strategy
{
class Cat : Animal
{
public String nome { get; private set; }
public Cat(String nome) {
this.nome = nome;
}
public void MakeSound()
{
Console.WriteLine("Miau");
}
}
}
//Cat.cs Fim
//Programa.cs inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Strategy
// O Padrão Strategy define uma familia de algorimos, encapsula cada um deles e os torna intercambiáveis.
// A estratégia deixa o algoritimo variar independentemente dos clientes que o utilizam
{
class Program
{
static void Main(string[] args)
{
Animal dog = new Dog();
Animal cat = new Cat("gato");
dog.MakeSound();
cat.MakeSound();
Cat cat2 = (Cat) cat;
Console.WriteLine(cat2.nome);
Console.ReadLine();
}
}
}
//programa.cs Fim
//Saída
Au
Miau
gato
//Saída fim
Que tal um que faz som mesmo...
ResponderExcluirusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Media;
namespace Strategy
{
class Bird:Animal
{
public void MakeSound()
{
Console.WriteLine("Piu");
SoundPlayer simpleSound = new SoundPlayer(@"c:\Windows\Media\chimes.wav");
simpleSound.Play();
}
}
}