2
respostas

E se a propriedade "Saldo" da classe "Conta" fosse "private"?

No exercício solicitado, pede-se para aplicar o Design Patterns "State" conforme exemplo na classe de Conta bancária.

Porém, supondo que esta classe "Conta" se aproximasse mais perto da vida real e tivesse a propriedade "Saldo" com o "set" = "private".

Como seria esta implementação com "State" sendo que não seria mais possível atribuir valores na propriedade "Saldo" da classe "Conta"?

Pensei em implementar métodos que apenas retornassem o valor descontado do Saque e/ou Depósito. Está correto?

2 respostas

Boa tarde, Luiz Fernando!

Boa pergunta! Vejo 3 formas de resolver este problema:

1.) A sua solução. :) 2.) Criar o set ou um método para atribuir o valor como internal, assim apenas classes do próprio assembly teriam acesso; 3.) Num dos exemplos da aula, o Mauricio comenta sobre definir as classes dos estados dentro da classe principal. Dessa forma, é possível definir as classes do estado como private e pode-se manter a propriedade "Saldo" com o set = private, como você comentou.

O que vc acha?

Abraço

Bastaria criar métodos para acessar esses valores como por exemplo:

//-- Alguns exemplos de métodos que poderia criar:
public void incrementaSaldo(double valor)
        {
            this.Saldo += valor;
        }
public void decrementaSaldo(double valor)
        {
            this.Saldo -= valor;
        }
public void alteraSaldo(double valor)
        {
            this.Saldo = valor;
        }