Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Decorador - vários impostos de uma vez

Pensei na possibilidade de ter vários impostos de uma vez. Então alterei o código do método calcular para ficar da seguinte forma.

public BigDecimal calcular(Orcamento orcamento) {
        // DESIGNER_PATTERN decorator - fiz uma alteração em relação ao código do curso para que seja possível add vários impostos
        BigDecimal valorTotalImpostos = realizarCalculo(orcamento);
        Imposto proximo = outro;
        while(proximo != null){
            valorTotalImpostos = valorTotalImpostos.add(proximo.realizarCalculo(orcamento));
            proximo = proximo.outro;
        }
        return valorTotalImpostos;
    }

Assim é possível executar algo como

calculadoraDeImpostos.calcular(orcamento, (new ISS(new ICMS(new PIS()))))

Isso está descaracterizando o padrão decorator?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi Bruno,

Também é válido desse jeito, pois você continua podendo "decorar" o cálculo do imposto, passando os tipos de imposto de maneira bem flexível também.

Bons estudos!