Ejemplo n.º 1
0
        public static void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            //CalculadoraDeImpostos apenas exibe um mensagem na tela, ela não é necessária.
            //Mas agora imagine que, além de calcular o imposto,
            //essa classe precisasse fazer mais alguma coisa,
            //como por exemplo, alterar o status do Orçamento, ou notificar algum outro objeto desse valor calculado.
            var valor = imposto.Calcula(orcamento);

            Console.Write(imposto.GetType().Name + ": ");
            Console.WriteLine(valor);
        }
Ejemplo n.º 2
0
        public NotaFiscal Gera(Fatura fatura, IImposto imposto)
        {
            double valor        = fatura.ValorMensal;
            double valorImposto = imposto.Calcula(fatura);

            var notaFiscal = new NotaFiscal(valor, valorImposto);

            ExecutaAcaoNota(notaFiscal);

            return(notaFiscal);
        }
        /// <summary>
        /// Método que independe do imposto para calcular o valor do mesmo.
        /// </summary>
        /// <param name="orcamento">Classe que representa o orçamento.</param>
        /// <param name="imposto">Interface que representa todos os impostos.</param>
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            #region Smell Bad - CÓDIGO PROBLEMÁTICO

            /*
             * if ("ICMS".Equals(imposto))
             * {
             *  //double icms = orcamento.Valor * 0.1;      //CODIGO PROBLEMÁTICO
             *  double icms = new ICMS().CalculaICMS(orcamento);
             *  Console.WriteLine(icms);
             * }
             * else if("ISS".Equals(imposto))
             * {
             *  //double iss = orcamento.Valor * 0.06;      //CODIGO PROBLEMÁTICO
             *  double iss = new ISS().CalculaISS(orcamento);
             *  Console.WriteLine(iss);
             * }*/
            #endregion

            Console.WriteLine(imposto.Calcula(orcamento));
        }
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double valor = imposto.Calcula(orcamento);

            Console.WriteLine(valor);
        }
Ejemplo n.º 5
0
        // Passar a interface como parâmetro
        // Com este método genérico por mais que se crie vários outros impostos não precisamos mexer no Calculador de Impostos
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double resultado = imposto.Calcula(orcamento);

            Console.WriteLine(resultado);
        }
Ejemplo n.º 6
0
 public decimal CalculaImposto()
 {
     return(_imposto.Calcula(_orcamento));
 }
Ejemplo n.º 7
0
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double resultado = imposto.Calcula(orcamento);

            Console.WriteLine(resultado);
        }
Ejemplo n.º 8
0
 public Salario Desconta(IImposto desconto)
 {
     SalarioAtual -= desconto.Calcula(SalarioAtual);
     return(this);
 }
Ejemplo n.º 9
0
 public double RealizaCalculo(Orcamento orcamento, IImposto imposto)
 {
     return(imposto.Calcula(orcamento));
 }
        internal static void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            var valor = imposto.Calcula(orcamento);

            MessageBox.Show($"Valor do imposto calculado: {valor.ToString(CultureInfo.InvariantCulture)}");
        }
Ejemplo n.º 11
0
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double icms = imposto.Calcula(orcamento);

            Console.WriteLine(icms);
        }
 public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
 {
     var calculo = imposto.Calcula(orcamento);
     Console.WriteLine("PadroesDeProjetos.Strategy: " + calculo);
 }
Ejemplo n.º 13
0
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            var valor = imposto.Calcula(orcamento);

            MessageBox.Show(valor.ToString(CultureInfo.InvariantCulture));
        }
        // Tentando separar em métodos...

        /*
         * public void RealizaCalculoICMS(Orcamento orcamento)
         * {
         *  double icms = new ICMS().CalculaICMS(orcamento);
         *  Console.WriteLine(icms);
         * }
         *
         * public void RealizaCalculoISS(Orcamento orcamento)
         * {
         *  double iss = new ISS().CalculaISS(orcamento);
         *  Console.WriteLine(iss);
         * }
         *
         * // O problema persiste
         * // Ex.: Ao implementar outro imposto, um programador precisaria conhecer todo código
         */
        #endregion

        #region Passo 4

        // Com este método genérico por mais que se crie vários outros impostos não precisamos mexer no Calculador de Impostos

        public void RealizaCalculo(Orcamento orcamento, IImposto imposto) // Passar a interface como parâmetro
        {
            double resultado = imposto.Calcula(orcamento);

            Console.WriteLine(resultado);
        }
Ejemplo n.º 15
0
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            var calculo = imposto.Calcula(orcamento);

            Console.WriteLine("PadroesDeProjetos.Strategy: " + calculo);
        }
Ejemplo n.º 16
0
        public CalculadorDeImposto(Orcamento orcamento, IImposto estrategiaDeImposto)
        {
            decimal valorImposto = estrategiaDeImposto.Calcula(orcamento);

            Console.WriteLine($"Valor de {estrategiaDeImposto.Nome}: R$ {valorImposto:F2}");
        }