Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resposta - Validação de Saque

Classe AccountSecurity:

namespace exercise82.Models;

internal class AccountSecurity
{
    public bool ValidateWithdrawal(double value)
    {
        return value <= 1000;
    }
}

Classe BankAccount:

namespace exercise82.Models;

internal class BankAccount
{
    private AccountSecurity security;
    public string Holder { get; set; }
    public double Balance { get; private set; }

    public BankAccount(string holder, double balance)
    {
        Holder = holder;
        Balance = balance;
        security = new AccountSecurity();
    }

    public void WithdrawMoney(double value)
    {
        if (!(security.ValidateWithdrawal(value)) || value > Balance)
        {
            Console.WriteLine($"Withdrawal of ${value:F2} denied.");
        }
        else
        {
            Balance -= value;
        }
    }

    public override string ToString()
    {
        return $"Holder: {Holder} - Balance: ${Balance:F2}";
    }
}

Instância:

using exercise82.Models;

BankAccount bankAccount = new BankAccount("Carlos Eduardo", 2000);
bankAccount.WithdrawMoney(1500);
bankAccount.WithdrawMoney(700);

Console.WriteLine(bankAccount);
2 respostas
solução!

Oi, Carlos! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Com base no que você explicou, chamou atenção a separação de responsabilidades ao criar a classe AccountSecurity, mantendo a regra de validação fora da conta. O uso de private set em Balance também mostra cuidado com encapsulamento e controle do estado do objeto. Uma dica interessante para o futuro é usar propriedades com validação para centralizar regras e deixar o método de saque mais simples. Veja este exemplo:


private double balance;

public double Balance
{
    get { return balance; }
    private set
    {
        if (value >= 0)
        {
            balance = value;
        }
    }
}

Esse código garante que o saldo nunca fique negativo, concentrando a validação no setter e facilitando a manutenção.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado pela dica, Rafaela.