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:
class Person {
//codigo aqui
}
interface PersonDAO extends DefaultDAO {
//codigo aqui
}
class HibernatePersonDAO implements PersonDAO {
//codigo aqui
}
//classe de negocio
class PersonManager {
//private dao
//private transaction?
public addPerson(Person p) {}
public bool listPerson() {}
}
- 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?)
- 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
- 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