Пример #1
0
        public double Calcula(Orcamento orcamento)
        {
            IDesconto d1 = new DescontoPorCincoItens();
            IDesconto d2 = new DescontoPorMaisQuinhentosReais();
            IDesconto d3 = new SemDesconto();

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

            return(d1.Desconto(orcamento));
        }
Пример #2
0
        //D1 é disparado, se der certo ele calcula, se falhar ele vai para o proximo e o D2 tenta trabalhar, se não der, vai para o d3 que é sem desconto.
        public double Calcula(Orcamento orcamento)
        {
            var d1 = new DescontoPorCincoItens();
            var d2 = new DescontoPorMaisDeQuinhentosReais();
            var d3 = new DescontoPorVendaCasada();
            var d4 = new SemDesconto();


            //Chain of Responsibility - corrente de responsabilidades /// varias regras que não podem ser todas aplicadas. é divididos por classes, e cada uma com suas regras
            d1.Proximo = d2;
            d2.Proximo = d3;
            d3.Proximo = d4;

            return(d1.Desconta(orcamento));
        }