public double CalcularDesconto(Orcamento orcamento)
        {
            IDesconto d1      = new DescontoMaisQuinhentosReais();
            IDesconto d2      = new DescontoPorCincoItens();
            IDesconto d3      = new DescontoVendaCasada();
            IDesconto semDesc = new SemDesconto();

            d1.ProximoDesconto = d2;
            d2.ProximoDesconto = d3;
            d3.ProximoDesconto = semDesc;

            return(d1.Descontar(orcamento));
        }
コード例 #2
0
        public double Calcular(Orcamento orcamento)
        {
            var descontoCincoItens      = new DescontoCincoItens();
            var descontoQuinhentosReais = new DescontoQuinhentosReais();
            var descontoVendaCasada     = new DescontoVendaCasada();
            var semDesconto             = new SemDesconto();

            descontoCincoItens.Proximo      = descontoQuinhentosReais;
            descontoQuinhentosReais.Proximo = descontoVendaCasada;
            descontoVendaCasada.Proximo     = semDesconto;

            var descontoResult = descontoCincoItens.Descontar(orcamento);

            return(descontoResult);
        }
        public double Calcula(Orcamento orcamento)
        {
            //Chain of Responsability
            //declarar todos os descontos e chamar o método

            DescontoPorCincoItens      d1 = new DescontoPorCincoItens();
            DescontoPorQuinhentosReais d2 = new DescontoPorQuinhentosReais();
            DescontoVendaCasada        d3 = new DescontoVendaCasada();
            SemDesconto d4 = new SemDesconto();

            d1.Proximo = d2;
            d2.Proximo = d3;
            d3.Proximo = d4;

            return(d1.Desconta(orcamento));
        }