1
resposta

Boas Práticas e Acionando métodos via Super

Tive a mesma dúvida em relação ao amigo Victor que perguntou abaixo. Em relação a chamada do super passando o valor taxado para que a operação seja concluída na classe Conta e não na Conta Corrente:

Classe ContaCorrente:

  sacar(valor) {
        let taxa = 1.1;
        const valorTaxado = taxa * valor;
        super.sacar(valorTaxado);
    }

Classe Conta:

    sacar(valor) {

        if (valor >= this._saldo) return;

        this._saldo -= valor;
        return valor;
    }

Porém, fazendo a chamada desta maneira o funcionamento do sistema, para este caso, ficaria incorreto. Uma vez que o retorno do valor no método 'sacar' da classe CONTA é referente ao valor que será entregue ao usuário. Por isso, passando o valorTaxado, ele descontará da conta e retornará todo o valor descontado, e não somente o valor inicial.

Exempo: Saldo da Conta Corrente = R$ 200,00. Sacar na Conta corrente um valor de R$ 100,00. Eu chamo o método sacar da Conta Corrente e o valor é taxado em 10%. valor Taxado = R$ 110,00. É invocado o método do super (classe CONTA) passando o valor taxado como parâmetro. Sendo assim, o usuário (dono da conta) receberá um valor de R$ 110,00 e não $100,00. Sendo que os $10,00 deveriam ficar para o "Banco".

Estou certo?!

1 resposta

Fala ai David, tudo bem?

Estou certo?!

Sim, o valo sacado na conta do usuário seria de 110,00, onde, 100 seria o saque em si e 10 seria a taxa.

Mas, ao meu ver está correto, isso porque o saldo da conta deve ser diminuido em 110, o detalhe é que nesse sistema não temos esse controle de X reais para o usuário e Y para o banco.

Espero ter ajudado.