| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2009 12:19:44
|
magnomp
JavaBaby
Membro desde: 21/07/2009 12:43:00
Mensagens: 77
Offline
|
Em um projeto, estou fazendo o seguinte:
Uso o pattern repository para acessar meus objetos de negócio. Os repositorios são definidos por interfaces, e eu tenho um factory para instancia-los.
No cliente, configuro o factory para instanciar os repositorios dinamicamente usando proxies. Implemento os proxies de forma a empacotar a chamada (isto é: qual interface está sendo usada, nome do método chamado e argumentos) e enviar tudo para um servlet.
No servidor, o servlet decodifica a chamada, usa o factory para obter uma implementação concreta do repositorio, chama o método via reflexão e empacota o resultado (ou alguma exceção que tenha sido lançada pelo método) e retorna para o cliente. O cliente decodifica isso e retorna a chamada.
Ficou bem simples de usar, e bem transparente.
E com a vantagem de que se o cliente precisar apenas de acesso local, pra uma única estação, eu posso configurar o factory no cliente de forma a instanciar as implementações reais ao invés dos proxies, e o resto do sistema continuaria funcionando da mesma forma...
Mas devido à minha inexperiencia, posso estar esquecendo algum detalhe que irá me causar uma boa dor de cabeça no futuro, ou talvez haja uma forma mais simples de implementar essa comunicação...
Comentarios..?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2009 12:38:50
|
bKn
Java Ninja
Membro desde: 07/04/2009 15:22:18
Mensagens: 288
Offline
|
Onde você trata regras de negócio? No cliente?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2009 12:45:43
|
magnomp
JavaBaby
Membro desde: 21/07/2009 12:43:00
Mensagens: 77
Offline
|
No momento em lugar nenhum rsrs
Esse projeto está bem no inicio, eu me dediquei inicialmente a desenvolver essa comunicação apenas.
Mas a idéia é deixar algumas regras nos objetos de negócio, que vão ficar trafegando entre cliente/servidor, e tambem validar nos repositorios do servidor antes de persistir.
|
|
|
 |
|
|
|
|