| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 13:23:24
|
anderson_lr
JavaBaby
![[Avatar]](/images/avatar/ab2ad8b490e791646797615da3308ce5.jpg)
Membro desde: 08/07/2010 11:05:54
Mensagens: 95
Offline
|
Pessoal,
Estou implementando um sistema e estou utilizando (da melhor forma que encontrei) esses três padrões na aplicação e gostaria da opinião de vocês. Já implementei os DAOs implementando as interfaces Repository, que são recuperadas por um Factory que criei. Minha dúvida está na entidade, como temos que deixar os nossas entidades mais inteligentes e com mais responsabilidades, adotei essa abordagem. Vejam o método encontrarPorId() e listarTudo() por exemplo, o que acham?:
This message was edited 1 time. Last update was at 28/12/2011 13:24:35
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 13:41:45
|
igor_ks
JavaEvangelist
Membro desde: 22/09/2011 11:54:39
Mensagens: 304
Localização: Maringá
Offline
|
pq nao deixa esses metodos na FabricaDeRepositorios, deixa essa classe como abstract e faz a classe PerfilDeUsuario herdar dela? Ai esses metodos ficam implicitos pra todas classes que extends de FabricaDeRepositorios, sem precisar ficar reimplementando para todas as classes, todos os metodos que possuem em comum
Se for sistema web, eu usaria
Domain > Repository > Service > UI > tela
Domain, Repository: backend
Service > UI: frontend
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 13:44:29
|
igor_ks
JavaEvangelist
Membro desde: 22/09/2011 11:54:39
Mensagens: 304
Localização: Maringá
Offline
|
mas ai nesse caso ficaria errado chamar de Fabrica.. seria um DAOGenerico
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 13:47:17
|
anderson_lr
JavaBaby
![[Avatar]](/images/avatar/ab2ad8b490e791646797615da3308ce5.jpg)
Membro desde: 08/07/2010 11:05:54
Mensagens: 95
Offline
|
Igor,
A classe FabricaDeRepositorios só retorna instâncias de repositórios:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 13:55:16
|
anderson_lr
JavaBaby
![[Avatar]](/images/avatar/ab2ad8b490e791646797615da3308ce5.jpg)
Membro desde: 08/07/2010 11:05:54
Mensagens: 95
Offline
|
Igor,
DaoGenerico no meu caso é uma classe concreta que utilizo pra extender DAOs através de herança pra reaproveitamento de código. Estou utilizando a classe FabricaDeRepositorios nesse caso somente pra me retornar instancias de DAOs referenicados por Repositorys através de polimorfismo. Seria uma forma de não ter referências de DAOs diretamente nas minhas entidades, mas sim dos Repositorys, o que é a verdadeira intenção do pattern repository, já que ele é quem faz parte da camada de domínio e não o DAO. DaoGenerico seria somente pra reaproveitamento de código, ou seja, implementações.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 13:57:41
|
aeciovc
Java Ninja
Membro desde: 28/02/2008 21:15:34
Mensagens: 267
Localização: Recife
Offline
|
Existem frentes que pregam o fato de tornar as entidades mais inteligentes, já outra acham que não o velho e bom POJO deve continuar do jeito que sempre foi.
Eu gosto da segunda alternativa.
mas acredito que se bem feito não haja tantos problema assim na primeira abordagem.
|
Aécio Costa
www.aeciocosta.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 13:59:31
|
igor_ks
JavaEvangelist
Membro desde: 22/09/2011 11:54:39
Mensagens: 304
Localização: Maringá
Offline
|
é que nesse caso que vc esta fazendo, vc misturou o Domain com o Repository.. tah bem estranho isso..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2011 14:05:05
|
anderson_lr
JavaBaby
![[Avatar]](/images/avatar/ab2ad8b490e791646797615da3308ce5.jpg)
Membro desde: 08/07/2010 11:05:54
Mensagens: 95
Offline
|
Legal cara, obrigado pela dica. Um dos motivos pelo qual achei essa abordagem de entidades inteligentes interessante seria pelo fato dos controladores não precisarem conhecer os DAOS, incentivando o fraco acoplamento entre camadas, e acho que nesse caso o repositório seria como um "facade" para o subsistema de persistência, onde as entidades ficam totalmente livres da camada de persistência.
|
|
|
 |
|
|