1
resposta

[Sugestão] Alternativa ao Exercício 7

Não seria melhor o exercício pedir a moeda de destino? Se for para converter sempre para real, não faz sentido ter o Real dentro dos Enums.

public enum Moeda {
    DOLAR(5.1),
    EURO(5.5),
    REAL(1.0);

    private final Double base;

    Moeda(Double base) {
        this.base = base;
    }

    public double convertePara(Double valor, Moeda moedaDestino) {
        return (moedaDestino.base / this.base) * valor;
    }
}
1 resposta

Olá Rafael! Tudo bem?

A sua sugestão faz bastante sentido. No contexto do exercício, onde o objetivo é converter valores de reais para outras moedas, realmente não seria necessário incluir o Real dentro dos Enums, já que a conversão sempre parte do Real para outra moeda.

Uma alternativa ao exercício poderia ser modificar o método converterPara para que ele receba a moeda de destino, permitindo assim a conversão entre quaisquer duas moedas. Isso tornaria o enum mais flexível e útil em diferentes contextos. A implementação ficaria assim:

public enum Moeda {
    DOLAR(5.1),
    EURO(5.5),
    REAL(1.0);

    private final Double base;

    Moeda(Double base) {
        this.base = base;
    }

    public double convertePara(Double valor, Moeda moedaDestino) {
        return (moedaDestino.base / this.base) * valor;
    }
}

Com essa abordagem, você poderia converter entre qualquer par de moedas, não apenas de Real para outra moeda. Por exemplo:

double valorEmDolares = Moeda.REAL.convertePara(100.0, Moeda.DOLAR);
double valorEmEuros = Moeda.DOLAR.convertePara(100.0, Moeda.EURO);

Bons estudos!