1
resposta

Faça como eu fiz: validação de saque

internal class ContaBancaria
{
    public string Titular { get; set; }

    private decimal saldo;

    public decimal Saldo
    {
        get => saldo;
        set => saldo = value;
    }

    public ContaBancaria(string titular, decimal saldo)
    {
        Titular = titular;
        Saldo = saldo;
    }

    public void Sacar(decimal valor)
    {
        SegurancaConta seguranca = new SegurancaConta();
        if (seguranca.ValidarSaque(valor))
        {
            Saldo -= valor;
            Console.WriteLine("Saque realizado com sucesso.");
        }
        else
        {
            Console.WriteLine("Saque negado pela política de segurança.");
        }
    }

    public void ExibirSaldo()
    {
        Console.WriteLine($"Saldo atual: {Saldo}");
    }
}
internal class SegurancaConta
{
    public bool ValidarSaque(decimal valor)
    {
        return valor >= 1000;
    }
}
1 resposta

Olá, Pedro, como vai?

A estrutura geral está bem organizada e a separação entre a classe de conta e a classe de segurança foi aplicada corretamente, mantendo a validação do saque fora da classe principal da conta. A utilização de encapsulamento e a chamada da classe SegurancaConta dentro do método Sacar seguem a lógica proposta na atividade.

Um único ponto é que a regra de validação proposta para o saque permite valores até 1000, enquanto o método ValidarSaque atualmente autoriza valores maiores ou iguais a 1000. Isso inverte a regra estabelecida.

Obrigado por compartilhar sua resolução. Continue trazendo suas implementações e dúvidas sempre que quiser discutir soluções. O fórum permanece à disposição.

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