예제 #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();
        }
예제 #2
0
        static void Main(string[] args)
        {
            Imposto   impostoComplexo = new ISS(new ICMS());
            Orcamento orcamento       = new Orcamento(500.0);
            double    valor           = impostoComplexo.Calcula(orcamento);

            Console.WriteLine(valor);
            Console.ReadKey();
        }
예제 #3
0
        static void Main(string[] args)
        {
            Imposto   iss       = new ISS(new ImpostoAlto());
            Orcamento orcamento = new Orcamento(1000);
            double    valor     = iss.Calcula(orcamento);

            Console.WriteLine(valor);

            Console.ReadKey();
        }
예제 #4
0
        public static void ImpostoComDecorator()
        {
            var orcamento = new Orcamento(0);

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

            var imposto  = new ImpostoMuitoAlto();
            var imposto2 = new ISS();
            var imposto3 = new ImpostoMuitoAlto(new ISS());

            var retorno  = imposto.Calcula(orcamento);
            var retorno2 = imposto2.Calcula(orcamento);
            var retorno3 = imposto3.Calcula(orcamento);

            MessageBox.Show(retorno + " + " + retorno2 + " = " + retorno3);
        }
예제 #5
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();
        }