1
resposta

Limite no número de descontos

Essa seria uma maneira válida para isso? seria errado a filha não precisar saber o número de vezes que o desconto foi efetuado?

public abstract class EstadoDeOrcamento {

    private String nomeEstado;
    private boolean descontoEfetuado;
    protected Orcamento orcamento;

    public EstadoDeOrcamento(Orcamento orcamento, String nomeEstado){
        this.orcamento = orcamento;
        this.nomeEstado = nomeEstado;
        descontoEfetuado = false;
    }

    protected abstract double descontoExtra();

    public abstract EstadoDeOrcamento aprova();

    public abstract EstadoDeOrcamento reprova();

    public abstract EstadoDeOrcamento finaliza();

    public final double aplicaDescontoExtra(){
        if(!descontoEfetuado) {
            descontoEfetuado = true;
            return descontoExtra();
        }
        throw new RuntimeException("Desconto já efetuado");
    }

    public final String getNome() {
        return nomeEstado;
    }

}
1 resposta

Oi Geraldo

Perfeito, não é errado a filha não saber o número de vezes que o desconto foi efetuado.