/// <summary> /// BUILDER: Facilita criação de classes com construtores grandes e complexos /// </summary> private static void Builder() { NotaFiscalBuilder builder = new NotaFiscalBuilder(); builder .ParaEmpresa("Caelum Ensino e Inovação") .ComCnpj("23.456.789/0001-12") .ComItem(new ItemDaNota("Carro", 100)) .ComItem(new ItemDaNota("Bike", 200)) .NaDataAtual() .ComObservacao("Teste de Nota Fiscal"); NotaFiscal nf = builder.Constroi(); Console.WriteLine(nf); Console.ReadKey(); }
/// <summary> /// OBSERVER: permite que diversas ações sejam executadas de forma transparente à classe principal /// </summary> private static void Observer() { NotaFiscalBuilder builder = new NotaFiscalBuilder(); builder .ParaEmpresa("Caelum Ensino e Inovação") .ComCnpj("23.456.789/0001-12") .ComItem(new ItemDaNota("Carro", 100)) .ComItem(new ItemDaNota("Bike", 200)) .NaDataAtual() .ComObservacao("Teste de Nota Fiscal"); builder.AdicionaAcao(new EnviadorDeEmail()); builder.AdicionaAcao(new NotaFiscalDao()); builder.AdicionaAcao(new EnviadorDeSms()); builder.AdicionaAcao(new Impressora()); NotaFiscal nf = builder.Constroi(); Console.ReadKey(); }