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(); }
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(); }