ou
[code]avaliacao = new Avaliacao( usrAvaliado, usrAvaliador, nota ) );[/code]
ou
ou
[code]avaliacao = new Avaliacao( usrAvaliado, usrAvaliador, nota ) );[/code]
ou
[quote=marcosurata]Senhores,
estou estudando e lendo o livro do Evans. Acompanhei essa thread desde o início e aproveitando o gancho que esta mudou um pouco o foco da discussão gostaria de confirmar algumas coisas. Está certo, dentro do contexto do DDD, a responsabilidade das camadas abaixo?
[/quote]
Sim, até aqui:
A camada de persistência não é uma camada de domínio tal como a camada de aplicação não é.
A camada de aplicação consume serviços (invoca métodos) das classes do dominio.
A camada de domínio não consome serviços da camada de persistência.
Do ponto de vista do dominio essa camada não existe. O que existe são vários repositórios.
Os repositórios, por sua vez. são responsáveis por preservar ( não necessáriamente persistir) o estado do dominio ( que é o estado do sistema). Se eles escolhem preservar em memória ( prevalência) ou em disco ( persistência) é uma decisão só deles.
Portanto eles não são , nem estão , na camada de persistência. Eles consomem serviços das classes da camada de persistencia.
Em uma arquitetura orientada ao dominio os repositórios são elementos do domínio.
[quote=danieldestro]usuario.addAvaliacao( new Avaliacao( usrAvaliador, nota ) );
ou
A avaliação surge do nada?
Eu acho que o mais correto seria usuarioAvaliador.avalia(usuario, nota).
new é nada? rsrsrs…
Se for assim você corre o risco de ter a “Matrix” toda no seu objeto.
usuario.avalia( usuario, nota );
usuario.compra( papelHigienico );
usuario.ler( livro );
usuario.viaja( aviao, lugarParadisiaco );
usuario.namora( gretchen );
usuario.compra( seguroDoCarro );
usuario.vai( carro, hospital );
Não fica um modelo complicado (estufado) demais?
Se o modelo reflete no negócio, talvez o negócio é que esteja estufado demais.
De qualquer modo, uma delegação de responsabilidade ajuda a resolver.
[quote=sergiotaborda][quote=marcosurata]Senhores,
estou estudando e lendo o livro do Evans. Acompanhei essa thread desde o início e aproveitando o gancho que esta mudou um pouco o foco da discussão gostaria de confirmar algumas coisas. Está certo, dentro do contexto do DDD, a responsabilidade das camadas abaixo?
[/quote]
Sim, até aqui:
A camada de persistência não é uma camada de domínio tal como a camada de aplicação não é.
A camada de aplicação consume serviços (invoca métodos) das classes do dominio.
A camada de domínio não consome serviços da camada de persistência.
Do ponto de vista do dominio essa camada não existe. O que existe são vários repositórios.
Os repositórios, por sua vez. são responsáveis por preservar ( não necessáriamente persistir) o estado do dominio ( que é o estado do sistema). Se eles escolhem preservar em memória ( prevalência) ou em disco ( persistência) é uma decisão só deles.
Portanto eles não são , nem estão , na camada de persistência. Eles consomem serviços das classes da camada de persistencia.
Em uma arquitetura orientada ao dominio os repositórios são elementos do domínio.
[/quote]
Obrigado sergio, muito esclarecedora sua resposta.
Imaginando que o domínio preve q o usuário tenha de fazer todas essas coisas.
[quote=danieldestro]new é nada? rsrsrs…
Se for assim você corre o risco de ter a “Matrix” toda no seu objeto.
usuario.avalia( usuario, nota );
usuario.compra( papelHigienico );
usuario.ler( livro );
usuario.viaja( aviao, lugarParadisiaco );
usuario.namora( gretchen );
usuario.compra( seguroDoCarro );
usuario.vai( carro, hospital );
Não fica um modelo complicado (estufado) demais?[/quote]
Isso seria uma opção para evitar o usuário estar estufado demais?
usuario.executa(new avaliacao( usuario, nota ));
usuario.executa(new compra( papelHigienico ));
usuario.executa(new ler( livro ));
usuario.executa(new viaja( aviao, lugarParadisiaco ));
usuario.executa(new namora( gretchen ));
usuario.executa(new compra( seguroDoCarro ));
usuario.executa(new vai( carro, hospital ));
[quote=Edufa]Isso seria uma opção para evitar o usuário estar estufado demais?
usuario.executa(new avaliacao( usuario, nota ));
usuario.executa(new compra( papelHigienico ));
usuario.executa(new ler( livro ));
usuario.executa(new viaja( aviao, lugarParadisiaco ));
usuario.executa(new namora( gretchen ));
usuario.executa(new compra( seguroDoCarro ));
usuario.executa(new vai( carro, hospital ));
[/quote]
Não! Mas isto seria:
aval = new Avaliacao( avaliado, avaliador, nota );
new Carro().leva( usuario, hospital );