Pesquisar

terça-feira, 19 de junho de 2007

De quem é este método?




Um amigo lendo a apostila de Java e Orientação a Objetos da Caelum(r) - por sinal ótima apostila -, me questionou sobre como saber de quem é a responsabilidade de um método. (como atribuir e distribuir as responsabilidades entre as classes)

Mais especificamente, tem-se dois objetos Conta e Pessoa. Ele me disse:
- Mas quem saca dinheiro não é a pessoa?
- Porque que conta é que está com esse método?
- Não temos que "imitar" o mundo real?

Tentei explicar para que devemos chegar o mais perto do mundo real, não completamente igual ao mundo real. Sobre atribuir responsabilidades existem padrões (ou regras) e também vale o bom senso, existem padrões como o GRASP - Expert.

Padrão Expert
"Atribuir uma responsabilidade ao expert de informação - a classe que possui a informação necessária para preencher a responsabilidade"



Conta ou Pessoa preenchem a necessidade de sacar o dinheiro?
Quem é o expert da informação envolvida na responsabilidade, Conta ou Pessoa? (saldo,limite...)
Eu acredito que seja a Conta. O objeto Conta que conhece qual o limite, para não ultrapassar, e autualiza o saldo. Ou seja, a Conta é o Expert.

Nenhum comentário: