예제 #1
0
        private static void ImpostoComDecorator()
        {
            Orcamento orcamento = new Orcamento(0);

            orcamento.AdicionaItem(new Item("Caneta", 250));
            orcamento.AdicionaItem(new Item("Caneta", 250));


            Imposto Imposto  = new ImpostoMuitoAlto();
            Imposto Imposto2 = new ISS();
            Imposto Imposto3 = new ImpostoMuitoAlto(new ISS());

            var retorno  = Imposto.Calcula(orcamento);
            var retorno2 = Imposto2.Calcula(orcamento);
            var retorno3 = Imposto3.Calcula(orcamento);


            Console.WriteLine(retorno + " + " + retorno2 + " = " + retorno3);
            Console.ReadKey();
        }
예제 #2
0
        static void ComDesignPattern()
        {
            Orcamento orcamento = new Orcamento(500);

            Console.WriteLine($"Valor do Orcamento: R$ {orcamento.Valor}");
            Console.WriteLine();

            Imposto icms = new ICMS();
            Imposto ipi  = new IPI();
            Imposto iss  = new ISS();

            //Impostos Separados
            var valorIcms = icms.Calcular(orcamento);
            var valorIpi  = ipi.Calcular(orcamento);
            var valorIss  = iss.Calcular(orcamento);

            Console.WriteLine($"Valor do ICMS: R$ {valorIcms}");
            Console.WriteLine($"Valor do IPI: R$ {valorIpi}");
            Console.WriteLine($"Valor do ISS: R$ {valorIss}");
            Console.WriteLine();

            //Impostos Juntos
            Imposto icmsComIpi       = new ICMS(new IPI());
            Imposto ipiComIss        = new IPI(new ISS());
            Imposto icmsComIpiComIss = new ICMS(new IPI(new ISS()));

            var valorICMScomIpi       = icmsComIpi.Calcular(orcamento);
            var valorIpicomIss        = ipiComIss.Calcular(orcamento);
            var valorICMScomIpiComIss = icmsComIpiComIss.Calcular(orcamento);

            Console.WriteLine($"Valor do ICMS Com Ipi: R$ {valorICMScomIpi}");
            Console.WriteLine($"Valor do IPI com ISS: R$ {valorIpicomIss}");
            Console.WriteLine($"Valor do ICMS Com IPI e ISS: R$ {valorICMScomIpiComIss}");

            Console.ReadKey();
        }