Padrão Repository, Dao e Factory  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
anderson_lr
JavaBaby
[Avatar]

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

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
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
anderson_lr
JavaBaby
[Avatar]

Membro desde: 08/07/2010 11:05:54
Mensagens: 95
Offline

Igor,

A classe FabricaDeRepositorios só retorna instâncias de repositórios:


anderson_lr
JavaBaby
[Avatar]

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.
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
[WWW] [MSN]
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..
anderson_lr
JavaBaby
[Avatar]

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.

 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team