Esempio n. 1
0
        static void ComDesignPattern()
        {
            Orcamento orcamento = new Orcamento(300);

            IImposto ipi = new IPI();
            IImposto iss = new ISS();

            var valorIpi = ipi.Calcular(orcamento);
            var valorIss = iss.Calcular(orcamento);

            Console.WriteLine($"Valor Orçamento: R$ {orcamento.Valor}, Valor IPI: R$ {valorIpi}, Valor ISS: R$ {valorIss}");
        }
Esempio n. 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();
        }