Regra de negócio separada  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
peron
JavaGuru
[Avatar]

Membro desde: 09/06/2005 09:39:31
Mensagens: 236
Localização: Blumenau/SC
Offline

Olá a todos,

Estou tentando desenvolver um projeto onde a regra de negócio fica isolada (como se fosse um projeto separado), tentando de maneira a deixar meu código facilmente utilizável no desktop ou na web.

Estou com algumas dúvidas que não consegui encontrar ou interpretar adequadamente em minhas buscas na web, e gostaria de ouvir algumas opiniões de pessoas experientes

Exemplo usado:

1) Como não devo usar nenhum framework web ou desktop, como faço para que meu modelo carregue adequadamente a Implementacao do DAO Genérico ao respectivo banco de dados?

Minha idéia: Utilizar uma factory carregada através de um arquivo XML. Algo parecido com isso aqui: http://jingdao.sourceforge.net/. Mas ainda persiste um problema: como armazenar a instancia dessa factory que seja facilmente acessivel pelos meus objetos do modelo. (Singleton?)

2) Outro problema que apareceu é como que minhas classes de negócio vao receber o dao e a transaction? elas vao dar um factory.getDAO()? ou há alguma forma de deixar isso dinâmico? (ou seja, se for web, poder usar IoC como no mentawai)

Minha idéia: sem idéia

3) Sobre a transaction, no caso quem controla elas é o PersonManager certo? dentro de uma action do mentawai eu so vou chamar metodos de personManager, correto?

Minha idéia: sem idéia


Desculpem as dúvidas de iniciante, mas gostaria muito de já começar corretamente ..

Obrigado desde já

[]s

Marcos

Marcos Peron
http://www.marcosperon.com





"Dizem que, no início, Deus criou o céu e a Terra. Mentira! Na verdade, no início Deus criou Java. Onde achas que ele programou o mundo, oras?"
[WWW] [Yahoo!] [MSN] [ICQ]
Tecnoage
GUJ Master

Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline

Voce não precisa estar em um ambiente WEB para usar IoC... neste caso, algumas de suas dúvidas estão mais claras..

Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br
[Email] [WWW] [MSN]
Tecnoage
GUJ Master

Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline

OBS: Não gosto de chamar um DAO de dentro de uma action diretemente. Não coloque regras de negócio dentro do DAO e lembre-se DAO é PERSISTÊNCIA, não regras de negócio.

OBS 2: O que tem a ver a implementação do seu DAO genérico com algum framework WEb ou desktop? pq vc se sente amarrado nisso?

Poste o código um pouco mais claro para a gente poder ajudar mais...


Abraço!

Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br
[Email] [WWW] [MSN]
peron
JavaGuru
[Avatar]

Membro desde: 09/06/2005 09:39:31
Mensagens: 236
Localização: Blumenau/SC
Offline

Tecnoage wrote:Voce não precisa estar em um ambiente WEB para usar IoC... neste caso, algumas de suas dúvidas estão mais claras..


Primeiramente, obrigado por responder

Sobre isso, gostaria de saber então se existe algum framework ou como posso fazer para ter IoC. vc conhece?

Tecnoage wrote:
OBS: Não gosto de chamar um DAO de dentro de uma action diretemente. Não coloque regras de negócio dentro do DAO e lembre-se DAO é PERSISTÊNCIA, não regras de negócio.


Certo, eu me expressei mail. minha estrutura é baseada no exemplo do mentawai a aplicação MyBooks

Minha estrutura:

Person -> Bean normal que tem construtor sem parametros e getters and setters

PersonManager -> aqui ficam os métodos que criam pessoas, removem pessoas e fazem algumas acoes com ela.

PersonDAO - interface que possui os metodos para persistencia

HibernatePersonDAO - implementacao de persistencia usando hibernate.

Aí, por exemplo, em uma action (web) ou no desktop eu só interagiria com o PersonManager. Porém, PersonManager tem que ter uma instancia do DAO correto e também não sei como controlar a transação ali.


Tecnoage wrote:
OBS 2: O que tem a ver a implementação do seu DAO genérico com algum framework WEb ou desktop? pq vc se sente amarrado nisso?


Como fazer para carregar no PersonManager o DAO correto sem ter dependencia a web ou desktop, podendo facilmente em ambos.

Como vocês fazem para armazenar instancias de classes únicas? usa Singleton ? Por exemplo, naquele caso, um dao loader como o jingdao citado acima.

Tecnoage wrote:
Poste o código um pouco mais claro para a gente poder ajudar mais...


tentei ser mais claro, se não consegui, posto o código.

Você tem alguma indicação de livro, ou link ou até algum exemplo de arquitetura para que eu possa desenvolver projetos reutilizáveis?

Desde já agradeço sua disposição.

[]s


Marcos Peron
http://www.marcosperon.com





"Dizem que, no início, Deus criou o céu e a Terra. Mentira! Na verdade, no início Deus criou Java. Onde achas que ele programou o mundo, oras?"
[WWW] [Yahoo!] [MSN] [ICQ]
fre_d
Java Ninja

Membro desde: 13/06/2007 17:42:02
Mensagens: 259
Localização: Lages - SC
Offline

Você pode usar o Spring ou PicoContainer como framework IoC.

Esse artigo é de 2004, se for comparar os dois acesse as versões mais recentes.

http://today.java.net/pub/a/today/2004/02/10/ioc.html
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team