Pessoa, eu estou começando agora (uns meses) e tenho uma dúvida de projeto.
Eu tinha feito:
public class Conta implements Serializable {
private Collection<Transacao> transacoes = new ArrayList<Transacao>();
...
public Transacao criarTransacao() {
Transacao t = new Transacao(this);
transacoes.add(t);
return t;
}
...
}
e
public class Transacao implements Serialazable {
private Conta conta = null;
...
public Transacao(Conta c) {
setConta(c);
}
public void setConta(Conta c) {
if (conta != null) {
conta.getTransacoes().remove(this);
}
conta = c;
c.getTransacoes().add(this);
}
...
}
(Desculpe-me se errei alguma coisa. O código mesmo está em casa e talvez eu tenha errado algo aqui, mas a lógica acho que deu pra pegar, né?)
Mas eu estava lendo que isso é errado. Que eu implementei regra de negócio no modelo. Alguém poderia me dizer uma melhor forma de se fazer isso nestas situações em que um objeto é composto por outro? Como eu poderia fazer? Acho que não posso falar que é um Data Access Object porque ele tem lógicas, né?
Uma outra situação parecida seria no caso de transferência, que sempre que eu faço algo num objeto (débito ou crédito) implica na ação inversa em outro?
Grato.
