コード例 #1
0
ファイル: Program.cs プロジェクト: DiegoBarney/PadraoMemento
        static void Main(string[] args)
        {
            Historico historico = new Historico();

            Contrato contrato = new Contrato(DateTime.Now, "Diego", TipoContrato.NOVO);

            historico.adiciona(contrato.salvaEstado());

            contrato.avanca();
            historico.adiciona(contrato.salvaEstado());

            contrato.avanca();
            historico.adiciona(contrato.salvaEstado());

            contrato.avanca();
            historico.adiciona(contrato.salvaEstado());

            contrato.printAtributos();

            contrato.restaura(historico.pega(0));

            contrato.printAtributos();

            Console.ReadLine();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            Historico historico = new Historico();

            Contrato contrato = new Contrato(DateTime.Now, "Maurício", TipoContrato.Novo);

            historico.Adiciona(contrato.SalvaEstado());

            contrato.Avanca();

            historico.Adiciona(contrato.SalvaEstado());

            contrato.Avanca();

            historico.Adiciona(contrato.SalvaEstado());

            contrato.Avanca();

            historico.Adiciona(contrato.SalvaEstado());


            Console.WriteLine(historico.GetEstado(0).Contrato.Tipo.ToString());
            Console.WriteLine(historico.GetEstado(1).Contrato.Tipo.ToString());
            Console.WriteLine(historico.GetEstado(2).Contrato.Tipo.ToString());
            Console.WriteLine(historico.GetEstado(3).Contrato.Tipo.ToString());

            Console.ReadKey();
        }
コード例 #3
0
        static void Main(string[] args)
        {
            Historico Historico = new Historico();

            Contrato Contrato = new Contrato(DateTime.Now, "Rodrigo", TipoContrato.Novo);

            Historico.Adiciona(Contrato.SalvaEstado());

            Contrato.Avanca();
            Historico.Adiciona(Contrato.SalvaEstado());

            Contrato.Avanca();
            Historico.Adiciona(Contrato.SalvaEstado());

            Contrato.Avanca();
            Historico.Adiciona(Contrato.SalvaEstado());
        }
コード例 #4
0
        static void Main(string[] args)
        {
            /* Design Pattern Memento
             * Utilizado para salvar o Estado de um Objeto
             * Util para recuperar o Estado de um Objeto em um certo momento por exemplo.
             */

            Historico historico = new Historico();

            Contrato contrato = new Contrato(DateTime.Now, "Joao", TipoContrato.Novo);

            historico.Adicionar(contrato.SalvarEstado()); // TIPO CONTRATO = NOVO

            contrato.Avancar();                           // TIPO CONTRATO = ANDAMENTO
            historico.Adicionar(contrato.SalvarEstado());

            contrato.Avancar(); // TIPO CONTRATO = ACERTADO
            historico.Adicionar(contrato.SalvarEstado());

            contrato.Restaurar(historico.Obter(1)); // TIPO CONTRATO = ANDAMENTO * RESTAURANDO ESTADO
            historico.Adicionar(contrato.SalvarEstado());

            contrato.Avancar(); // TIPO CONTRATO = ACERTADO
            historico.Adicionar(contrato.SalvarEstado());

            contrato.Avancar(); // TIPO CONTRATO = CONCLUIDO
            historico.Adicionar(contrato.SalvarEstado());

            Console.WriteLine("Historico de Estados");

            Estado estado;

            for (int i = 0; i < historico.QtdEstados; i++)
            {
                estado = historico.Obter(i);

                Console.WriteLine();
                Console.WriteLine($"Data de Alteracao: {estado.DtAlteracao.ToString("dd/MM/yyyy HH:mm:ss:fff")}");
                Console.WriteLine($"Data do Contrato: {estado.Contrato.Dt.ToString("dd/MM/yyyy HH:mm:ss:fff")}");
                Console.WriteLine($"Cliente: {estado.Contrato.Cliente}");
                Console.WriteLine($"Tipo: {estado.Contrato.Tipo}");
            }

            Console.ReadKey();
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: guiigos/design-patterns
        static void Main(string[] args)
        {
            Historico historico = new Historico();
            Contrato  c         = new Contrato(DateTime.Now, "Guilherme", TipoContrato.Novo);

            historico.Adiciona(c.SalvaEstado());
            Console.WriteLine(c.tipo);

            c.Avanca();
            historico.Adiciona(c.SalvaEstado());
            Console.WriteLine(c.tipo);

            c.Avanca();
            historico.Adiciona(c.SalvaEstado());
            Console.WriteLine(c.tipo);

            Console.WriteLine(historico.Pega(1).contrato.tipo);
        }
コード例 #6
0
        static void Main(string[] args)
        {
            Historico historico = new Historico();

            Contrato contrato = new Contrato(DateTime.Now, "Tiagao", TipoContrato.Novo);

            historico.Adiciona(contrato.SalvaEstado());

            contrato.Avanca();
            historico.Adiciona(contrato.SalvaEstado());

            contrato.Avanca();
            historico.Adiciona(contrato.SalvaEstado());

            contrato.Avanca();
            historico.Adiciona(contrato.SalvaEstado());

            Console.WriteLine("Hello World!");
        }
コード例 #7
0
        public static void Main(string[] args)
        {
            Historico historico = new Historico();

            Contrato contrato = new Contrato(DateTime.Now, "Mauricio", TipoContrato.Novo);

            historico.Adiciona(contrato.SalvaEstado());

            contrato.Avanca();
            historico.Adiciona(contrato.SalvaEstado());
            Console.WriteLine(contrato.Tipo);

            contrato.Avanca();
            historico.Adiciona(contrato.SalvaEstado());
            Console.WriteLine(contrato.Tipo);

            contrato.Avanca();
            historico.Adiciona(contrato.SalvaEstado());
            Console.WriteLine(contrato.Tipo);

            Console.ReadKey();
        }
コード例 #8
0
        static void Main(string[] args)
        {
            var contrato  = new Contrato("teste", DateTime.Now, TipoContrato.Novo);
            var historico = new Historico();

            for (byte i = 0; i < 4; i++)
            {
                Console.WriteLine("Tipo contrato {0}", contrato.Tipo);
                try
                {
                    contrato.Avanca();
                    historico.Adiciona(contrato.SalvaEstado());
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Gerou uma exceção: {0}", ex.Message);
                }
            }

            Estado estadoTeste = historico.Pega(1);

            Console.WriteLine("Histórico: {0}", estadoTeste.Contrato.Tipo);
        }
コード例 #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("Memento");

            Historico historico = new Historico();

            Contrato contrato = new Contrato(DateTime.Now, "Adriano", TipoContrato.Novo);

            historico.Adiciona(contrato.SalvarEstado());

            Thread.Sleep(500);

            contrato.Avanca();
            historico.Adiciona(contrato.SalvarEstado());

            Thread.Sleep(500);

            contrato.Avanca();
            historico.Adiciona(contrato.SalvarEstado());



            Estado e0 = historico.Obter(0);

            Console.WriteLine($"Estado {0} em {e0.DataTransicao} com tipo {e0.Contrato.Tipo}");


            Estado e1 = historico.Obter(1);

            Console.WriteLine($"Estado {1} em {e1.DataTransicao} com tipo {e1.Contrato.Tipo}");


            Estado e2 = historico.Obter(2);

            Console.WriteLine($"Estado {2} em {e1.DataTransicao} com tipo {e2.Contrato.Tipo}");
        }