Пример #1
0
        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();
        }
Пример #2
0
        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();
        }