Exemplo n.º 1
0
        /// <summary>
        /// Encapsular uma solicitação como objeto,
        /// desta forma permitindo parametrizar cliente com diferentes solicitações,
        /// enfileirar ou fazer o registro de solicitações e suportar operações que podem ser desfeitas.
        /// </summary>
        /// <param name="agrs"></param>
        public /*static*/ void Main(string[] agrs)
        {
            var caixaMsgAna  = new CaixaDeMensagem("Ana");
            var caixaMsgJose = new CaixaDeMensagem("Jose");

            Command commadAna  = new CommandEnviarMensagem(caixaMsgAna);
            Command commadJose = new CommandEnviarMensagem(caixaMsgJose);

            var gerenciadoMensagem = new GerenciadoMensagem();

            gerenciadoMensagem.AdicionarComando(commadAna);
            gerenciadoMensagem.AdicionarComando(commadJose);
            gerenciadoMensagem.EnviarMensageParaTodos(" Teste envio mensagem");
            //exemplo podeira ter um outro metodo
            //no gerenciado enviar para todos contatos que começa com ana etc..

            commadJose.Desfazer();
            Thread.Sleep(21000);
            commadAna.Desfazer();

            Console.ReadKey();
        }
 public CommandEnviarMensagem(CaixaDeMensagem contato)
 {
     contatoAlvo = contato;
 }