Olá,
ando olhando alguns padrões, frameworks, livros, etc…
Bem… tentando encontrar uma arquitetura interessante para a camada de negócios juntamente com a de persistência, temos algumas opções:
- DAO
- Data Mapper, Repository, Query Object - padrões do Fowler
- Ou ainda uma estrutura meio “EJB like”, algo como a estrutura de business layer foundation do Broemmer.
Alguém tem opiniões/considerações sobre este assunto?
Quando há uma estrutura em camadas, digamos:
±-----------------
| Apresentação
±-----------------
| Controle
±-----------------
| Negócios
±-----------------
| Persistência
±-----------------
Teoricamente, uma camada deve falar com a camada vizinha, certo?
Na minha opinião, o DAO, faz com que tenhamos algum objeto de controle fazendo dao.insert(objeto), ou seja, faz com que ele conheça DAO que é da camada de persistência. Logo, mistura um pouco as camadas…não? Será que estou errando em algo aqui?
Se fosse algo como do Broemmer, uma interface de objeto de negócio existe, definindo que os objetos de negócio terão métodos como save(), update() e delete(). E aí sim a implementação destes métodos conhecem a lógica de inserção, etc. Ou seja, a camada de negócios fala com a de persistência. E a de controle com a de negócios. Mas isso faz com que meu objeto de negócio ( persistente ) implemente uma interface. Há mal nisso?
Eu penso em ir por um caminho como o do Broemmer, ainda aplicando alguns padrões do Fowler, como o Data Mapper, Repository, etc…
Gostaria de ouvir opiniões…