예제 #1
0
        /*
         * - INTENÇÃO: permite a um objeto alterar seu comportamento quando o seu estado interno muda.
         *          O objeto parecerá ter mudado sua classe
         * - Alterar o comportamento de um objeto quando seu estado muda.
         */
        static void Main(string[] args)
        {
            Pato p = new Pato();

            p.voar();
            p.grasnar();

            // alterando o comportamento da classe pato.
            p.setComportamentoVoar(new NaoVoar());
            p.setComportamentoGrasnar(new NaoGrasnar());
            p.voar();
            p.grasnar();
        }