static void Main(string[] args) { Console.WriteLine("Builder"); Console.WriteLine(""); NotaFiscalBuilder builder = new NotaFiscalBuilder() .ParaEmpresa("123.456.789/0001-10", "N2S Software Ltda") .ParaDataAtual() .ComItem(new ItemDaNota("Notebook", 3500.0)) .ComItem(new ItemDaNota("Impressora", 1000.0)) .ComObservacoes("Nota de teste do design pattern builder") .AdicionarAcao(new EnviarNotaParaBancoDeDados()) // Adicionar acoes do observer .AdicionarAcao(new EnviarNotaPorEmail()) .AdicionarAcao(new EnviarNotaPorSMS()); NotaFiscal notaFiscal = builder.Build(); Console.WriteLine($"Cnpj: {notaFiscal.Cnpj}"); Console.WriteLine($"Razao Social: {notaFiscal.RazaoSocial}"); Console.WriteLine($"Valor Bruto: {notaFiscal.ValorBruto}"); Console.WriteLine($"Impostos: {notaFiscal.Impostos}"); Console.WriteLine($"Observacoes: {notaFiscal.Observacoes}"); Console.ReadKey(); }
static void Main(string[] args) { ItemNota item1 = new ItemNotaBuilder() .ComNome("item 1") .ComValor(100.0) .CriarItem(); ItemNota item2 = new ItemNotaBuilder() .ComNome("item 2") .ComValor(200.0) .CriarItem(); ItemNota item3 = new ItemNotaBuilder() .ComNome("item 3") .ComValor(300.0) .CriarItem(); NotaFiscal nf = new NotaFiscalBuilder() .ComRazaoSocial("Caelum") .ComCnpj("123.456.789/0001-10") .ComItem(item1) .ComItem(item2) .ComItem(item3) .ComObservacoes("entregar nf pessoalmente") .ComAcao(new EnviarEmail()) .ComAcao(new EnviarSMS()) .ComAcao(new NotaFiscalDAO()) .ComAcao(new Multiplicador(3)) .CriarNota(); Console.WriteLine(nf.ValorBruto); Console.ReadKey(); }
private static void Observer() { ItemDaNotaBuilder itemBuilder = new ItemDaNotaBuilder(); itemBuilder .ComNome("item1") .ComValor(100); var item1 = itemBuilder.Constroi(); itemBuilder .ComNome("item2") .ComValor(200); var item2 = itemBuilder.Constroi(); itemBuilder .ComNome("item3") .ComValor(200); var item3 = itemBuilder.Constroi(); List <IAcoesDaNotaFiscal> acoes = new List <IAcoesDaNotaFiscal>(); acoes.Add(new EnviadorDeEmail()); acoes.Add(new NotaFiscalDao()); acoes.Add(new Multiplicador(2)); NotaFiscalBuilder builder = new NotaFiscalBuilder(acoes); builder .ComRazaoSocial("Filomeno Advogados") .ComCnpj("24.093.094/0001.59") .Com(item1) .Com(item2) .Com(item3) .ComObservacoes("uma observacao qualquer"); //.ComAcao(new EnviadorDeEmail()) //.ComAcao(new NotaFiscalDao()) //.ComAcao(new Multiplicador(2)); NotaFiscal nota = builder.Constroi(); nota.Imprime(); Console.ReadKey(); }
public static void Main(string[] args) { NotaFiscalBuilder criador = new NotaFiscalBuilder(); criador.AdicionaAcao(new EnviadorDeEmail()); criador.AdicionaAcao(new EnviadorDeSMS()); criador.AdicionaAcao(new NotaFiscalDao()); NotaFiscal nf = criador.ParaEmpresa("Caelum Ensino e Inovação") .ComCnpj("23.467.789/0001-12") .ComItem(new ItemNota("item 1", 100.0)) .ComItem(new ItemNota("item 2", 200.0)) .ComObservacoes("Uma obs qualquer") .NaData(new DateTime(2008, 04, 14)) .Constroi(); Console.ReadKey(); }
static void ComDesignPattern() { NotaFiscalBuilder criadorNotaFiscal = new NotaFiscalBuilder(); criadorNotaFiscal .AdicionarEmpresa("Empresa A") .AdicionarCnpj("00.000.000/1234-12") .AdicionarItem(new ItemNotaFiscal("Televisao", 800)) .AdicionarItem(new ItemNotaFiscal("NoteBook", 2000)) .NaDataAtual() .AdicionarObs("Observacao"); criadorNotaFiscal.AdicionarAcao(new EnviadorEmail()); criadorNotaFiscal.AdicionarAcao(new NotaFiscalDAL()); criadorNotaFiscal.AdicionarAcao(new EnviadorSMS()); NotaFiscal notaFiscal = criadorNotaFiscal.Construir(); Console.WriteLine($"Valor Bruto da Nota Fiscal: R$ {notaFiscal.ValorBruto}"); Console.WriteLine($"Valor dos Impostos da Nota Fiscal: R$ {notaFiscal.Impostos}"); }
static void Main(string[] args) { List <AcaoAposGerarNota> acoes = new List <AcaoAposGerarNota>(); acoes.Add(new EnviadorDeEmail()); acoes.Add(new NotaFiscalDao()); acoes.Add(new EnviadorDeSms()); acoes.Add(new Impressora()); NotaFiscal notafiscal = new NotaFiscalBuilder(acoes).paraEmpresa("Diego Pimentel") .comCnpj("XXX.XXX.XXX/0001-XX") .comItemAdd(new ItemDaNota("Teclado", 45.0)) .comItemAdd(new ItemDaNota("Mouse", 12.0)) .comItemAdd(new ItemDaNota("Monitor", 300.0)) .comObservacao("Entregar nota fiscal em maos") .construir(); Console.WriteLine("Razao Social: " + notafiscal.getRazaoSocial() + "CNPJ: " + notafiscal.getCnpj() + "Valor: " + notafiscal.getValorBruto()); Console.ReadLine(); }
static void Main(string[] args) { NotaFiscalBuilder criador = new NotaFiscalBuilder(); criador.ParaEmpresa("Voonder") .ComCnpj("176.176.569.52") .ComItem(new ItemDaNota("item 1", 100.0)) .ComItem(new ItemDaNota("item 2", 200.0)) .NaDataAtual() .ComObservacoes("Teste de desing pattern do Builder"); criador.AdicionaAcao(new EnviadorDeEmail()); criador.AdicionaAcao(new EnviadorDeSms()); criador.AdicionaAcao(new NotaFiscalDao()); NotaFiscal nf = criador.Constroi(); Console.WriteLine(nf.ValorBruto); Console.WriteLine(nf.Impostos); Console.ReadKey(); }