Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Decorator");

            Orcamento orcamento = new Orcamento();

            orcamento.AdicionaItem(new Item("NOTEBOOK", 1500));
            orcamento.AdicionaItem(new Item("MOUSE", 100));
            orcamento.AdicionaItem(new Item("TECLADO", 100));
            orcamento.AdicionaItem(new Item("MONITOR", 100));
            orcamento.AdicionaItem(new Item("IMPRESSORA", 100));
            orcamento.AdicionaItem(new Item("BATERIA", 100));


            Console.WriteLine($"Orçamento: {orcamento.Valor}");

            ICMS icms = new ICMS();

            Console.WriteLine($"ICMS {icms.Calcula(orcamento)}");

            ISS iss = new ISS();

            Console.WriteLine($"ISS {iss.Calcula(orcamento)}");

            // Vai calcular o ICMS somando o valor do ISS
            // O ISS como não recebe outro imposto calcula apenas seu proprio valor
            ICMS icmsMaisISS = new ICMS(new ISS());

            Console.WriteLine($"ICMS + com ISS: {icmsMaisISS.Calcula(orcamento)}  <-- ICMS decorado com ISS!");

            Console.ReadKey();
        }
Ejemplo n.º 2
0
        public static void Main(string[] args)
        {
            var orcamento = new Orcamento();

            orcamento.AdicionarItem(new Item("Soja", 100.00));
            orcamento.AdicionarItem(new Item("Milho", 50.00));
            orcamento.AdicionarItem(new Item("Arroz", 50.00));
            orcamento.AdicionarItem(new Item("Feijão", 100.00));
            orcamento.SetValor(orcamento.Itens.Sum(item => item.Valor));
            var impostoIcms = new ICMS(new ISS());

            var valorTotalImpostos = impostoIcms.Calcular(orcamento);

            Console.WriteLine(valorTotalImpostos);
            Console.ReadKey();
        }
Ejemplo n.º 3
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();
        }