segunda-feira, 12 de setembro de 2011

C# Padrão 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 (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






Um comentário:

  1. Que tal um que faz som mesmo...

    using 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();
    }
    }
    }

    ResponderExcluir