Pessoal começo pela seguinte dúvida: em uma arquitetura EE realmente OO (hehe), os modelos de domínios ricos, mas sem lógicas acima do básico Crud, ou seja, os componentes, como por ex: Funcionário, Cliente, Cheques, etc.; quando tratamos de persistência, eles:
salvam seu estado ? Ou recebem uma instância do seu objeto para enviarem para o dao? Em termos especificos, qual das duas opcoes abaixo está correta (ou caso nenhuma esteja, como seria uma correta?):
Forma A: (Acredito ser esta, hehe)
[code]class Funcionario {
save() {
daoFuncionario.salvar(this);
}
}[/code]
Forma B:
[code]class Funcionario {
save(Funcionario funcionario) {
daoFuncionario.salvar(funcionario);
}
}[/code]
Outra coisa. Tanto nesses mesmos modelos não tão especificos, quanto nos mais (ContaCorrente, Caixa, Estoque) é correto ter todos os Daos dentro do próprio domínio de objeto, já que é ele que faz e corresponde aos seus atos, em outros termos também específicos, isso está correto: (ou como seria a forma correta?)
[code]
class ContaCorrente {
private ContasDao daoContas; //anyway
private CCDao daoCC; //ou IoC
private HistoricoDao daoHistorico = new …;
//estado
//comportamentos
transferir(Conta destino, Double valor) {
beginTransaction();
daoContas.verificaTalCoisa(destino);
daoCC.efetuaTransferencia(destino, valor);
daoHistorico.cadatraHistoricoBla(valor);
commit();
throws rollback();
}
}[/code]
Este tópico reflete apenas uma dúvida minha de como seria uma implementação sem os famosos DTO/TO/VO e BO.
Eras isso!