1
resposta

Boa noite. Fiz mais um exemplo sobre o padrão Decorator. Está ok ??

public interface IPessoa 
    {
        String Andar(); 
    }

    public class Pessoa : IPessoa
    {

        public string Andar()
        {
            return " andei";
        }

    }

     //Decorator
    public class PessoaRapida : IPessoa 
    {

        IPessoa p; 


        public PessoaRapida(IPessoa p)
        {
            this.p = p;
        }


        public String Andar() 
        {
            return new StringBuilder(p.Andar())
                .Append(" ")
                .Append("rápido")
                .ToString();
        }


        public String Correr() 
        {
            return "corri";
        }
    }

     //Decorator
    public class PessoaLenta : IPessoa
    {

        IPessoa p;


        public PessoaLenta(IPessoa p)
        {
            this.p = p;
        }


        public String Andar()
        {
            return new StringBuilder(p.Andar())
                .Append(" ")
                .Append("devagar")
                .ToString();
        }
    }

     class Program
    {
        static void Main(string[] args)
        {
            Pessoa pessoa;
            pessoa = new Pessoa();


            Console.WriteLine("usando Pessoa:");
            Console.WriteLine(pessoa.Andar());

            Console.WriteLine();

            PessoaRapida pessoaRapida;
            pessoaRapida = new PessoaRapida(pessoa);

            Console.WriteLine("usando PessoaRapida:");
            Console.WriteLine(pessoaRapida.Andar());
            Console.WriteLine(pessoaRapida.Correr());

            Console.WriteLine();

            PessoaLenta pessoaLenta;
            pessoaLenta = new PessoaLenta(pessoa);

            Console.WriteLine("usando PessoaLenta:");
            Console.WriteLine(pessoaLenta.Andar());


            Console.ReadKey();
        }
    }
1 resposta

esse ficou mais legal.. pq vc realmente incrementou o algoritmo!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software