Beispiel #1
0
        /// <summary>
        /// Decorator - Usamos este padrao quando precisamos agregar o comportamento
        /// de um objeto em outro objeto. Neste caso, a aplicação calcula impostos sobre o orcaçemto
        /// porem, pode-se querer agregar um imposto sobre outro imposto, no caso o ICMS tem seu valor agregado
        /// ao valor do ISS, entao, aplica-se o decorator para fazer o calculo de tudo que estiver agregado.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            Orcamento c = new Orcamento();
            c.Valor = 1000;

            Imposto.Imposto icms = new Imposto.ICMS(new Imposto.ISS());

            double valor = icms.CalcularImposto(c);

            Console.WriteLine(valor);

            Console.Read();
        }
Beispiel #2
0
 private double CalculoDoOutroImposto(Orcamento orcamento)
 {
     return(OutroImposto.Calcula(orcamento));
 }
Beispiel #3
0
 public override double Calcula(Orcamento orcamento)
 {
     return(orcamento.Valor * 0.07);
 }
Beispiel #4
0
 public override double Calcula(Orcamento orcamento)
 {
     return(orcamento.Valor * 0.06 + CalculoDoOutroImposto(orcamento));
 }