private static void TestaMemementoContratos() { var historico = new Historico(); var contrato = new Contrato(DateTime.Now, "Titular", TipoContrato.Novo); historico.Adiciona(contrato.SalvaEstado()); Console.ReadKey(); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); Console.ReadKey(); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); Console.ReadKey(); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); Console.WriteLine(contrato.Tipo); Console.ReadKey(); Console.WriteLine($"{historico.Recupera(0).Contrato.Tipo} - {historico.Recupera(0).AdicionadoEm.ToString()}"); Console.WriteLine($"{historico.Recupera(1).Contrato.Tipo} - {historico.Recupera(1).AdicionadoEm.ToString()}"); Console.WriteLine($"{historico.Recupera(2).Contrato.Tipo} - {historico.Recupera(2).AdicionadoEm.ToString()}"); Console.ReadKey(); }
static void Memento(string[] args) { Historico historico = new Historico(); Contrato contrato = new Contrato(DateTime.Now, "Thiago", TipoContrato.Novo); historico.Adiciona(contrato.SalvaEstado()); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); System.Console.WriteLine(contrato.Tipo); System.Console.WriteLine(historico.Get(2).Contrato.Tipo); }
public static void MementoHistorico() { Historico historico = new Historico(); Contrato contrato = new Contrato(DateTime.Now, new Cliente("Sebastião", "r:morrinhos"), Enum.Enums.TipoContrato.NOVO); historico.Adiciona(contrato.SalvaEstado()); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); }
static void Capitulo3() { Historico historico = new Historico(); Contrato contrato = new Contrato(DateTime.Now, "Victor", TipoContrato.Novo); historico.Adiciona(contrato.SalvaEstado()); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); contrato.Avanca(); historico.Adiciona(contrato.SalvaEstado()); Console.WriteLine(contrato.Tipo); Console.WriteLine(historico.Pega(2).Contrato.Tipo); }
static void Main(string[] args) { Historico historico = new Historico(); Contrato contr = new Contrato(DateTime.Now, "Bruno Lopes", TipoContrato.Novo); historico.Adiciona(contr.SalvaEstado()); contr.Avanca(); historico.Adiciona(contr.SalvaEstado()); contr.Avanca(); historico.Adiciona(contr.SalvaEstado()); Console.WriteLine(contr.Tipo); Console.WriteLine(historico.Pega(0).Contrato.Tipo); Console.WriteLine(historico.Pega(1).Contrato.Tipo); Console.WriteLine(historico.Pega(2).Contrato.Tipo); }
static void Main(string[] args) { NotasMusicais notas = new NotasMusicais(); IList <INota> musica = new List <INota>() { notas.Pega("do"), notas.Pega("re"), notas.Pega("mi"), notas.Pega("fa"), notas.Pega("fa"), notas.Pega("fa"), }; Piano piano = new Piano(); piano.Toca(musica); //Memento Historico historico = new Historico(); Contrato c = new Contrato(DateTime.Now, "Euler Vital", TipoContrato.Novo); historico.Adiciona(c.SalvaEstado()); c.Avanca(); historico.Adiciona(c.SalvaEstado()); c.Avanca(); historico.Adiciona(c.SalvaEstado()); Console.WriteLine(c.Tipo); Console.WriteLine(historico.Pega(2).Contrato.Tipo); Console.ReadLine(); //Interpreter //((1 + 100) + 10) + (20 - 10) //Pode ser usado toda vezque nós temos uma arvore de expressoes que queremos avaliar IExpressao esquerda = new Soma(new Soma(new Numero(1), new Numero(100)), new Numero(10)); IExpressao direita = new Subtracao(new Numero(20), new Numero(10)); IExpressao soma = new Soma(esquerda, direita); Console.WriteLine(soma.Avalia()); //API Expression do C# Expression soma_01 = Expression.Add(Expression.Constant(10), Expression.Constant(100)); Func <int> funcao = Expression.Lambda <Func <int> >(soma_01).Compile(); Console.WriteLine(funcao()); //Visitor Console.WriteLine(soma.Avalia()); ImpressoraVisitor impressora = new ImpressoraVisitor(); soma.Aceita(impressora); //Bridge (Separa responsabilidade) IMensagem mensagem = new MensagemCliente("Euler"); mensagem.Enviador = new EnviaPorEmail(); mensagem.Envia(); Console.ReadLine(); //Command //OBS: Ideal para api´s que serão consumidas por celulares //Pois pode ser excutado posteriormente FilaDeTrabalho fila = new FilaDeTrabalho(); Pedido pedido1 = new Pedido("Euler", 120.90); Pedido pedido2 = new Pedido("Jean", 110.90); fila.Adiciona(new PagaPedido(pedido1)); fila.Adiciona(new PagaPedido(pedido2)); fila.Adiciona(new FinalizaPedido(pedido1)); fila.Processa(); //Adpter //Usado para aptar o codigo usado pela biblioteca nativa c# Cliente cliente = new Cliente(); cliente.Nome = "Euler"; cliente.Endereco = "Rua vergueiro"; cliente.DataDeNascimento = DateTime.Now; string xml = new GeradorDeXml().GeraXml(cliente); Console.WriteLine(xml); Console.ReadLine(); }