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

Desconto Extra aplicado uma única vez

Eu entendi que ele poderia trocar de EmAprovavao para Aprovado, no total chamaria 2 descontos. Se fosse chamado AplicaDesconto novamente ele lançaria uma exception, entao apliquei a condicional do metodo aplicaDesconto, funcionou, mas quero saber se a forma de trabalhar com isso esta correta e se também poderia ser assim?

trecho do codigo

private static int limiteDeDesconto=0;

... outros metodos

public void aplicaDescontoExtra() {
    limiteDeDesconto++;
    if(limiteDeDesconto > 2)
        throw new RuntimeException("Desconto ja ofi aplicado neste orcamento");
    else
        estadoAtual.aplicaDescontoExtra(this);
}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

O problema de vc aplicar a condicional no aplicaDesconto é que que se vc tiver outras transições, vc vai ter que lembrar de incrementar aí.. por isso que é mais jogo deixar essa decisão dentro do próprio estado.