Boa tarde, tenho um projeto em 3 camadas:
Business
Entity
DAO
Tenho uma dúvida quanto ao como acoplar objetos. Por exemplo, ao inserir Pedido chamaria o Business do Pedido que implementa as regras de negócios do pedido, não convém que classes de negócios do pedido implementem regras de negócios de outros objetos ( de item por exemplo ), seja chamando o outro business ou implementando o código na business de peido.
Como fazer esse acoplamento então, por exemplo para buscar um pedido.
Chamo a business do pedido, a própria business do pedido busca o item, ou teria que ter outra camada que pegaria pelo seu business do pedido e o item por seu Business com base no pedido já capturado?
O mesmo se aplica ao inserir.
Como fazer então?
Não existe receita de bolo.
Aqui eu tenho um exemplo de Rotas, Linhas e Pontos.
Uma Rota é formada por Pontos. E uma Linha é formada por Rotas (ida e volta, por ex.).
Ou seja:
1 Linha <-> 2 Rotas
1 Rota <-> N Pontos
Como a inclusão do dado é sempre da Rota (na entidade do meio), é pelo DAO de Rota que gero as inclusões/atualizações pelos DAOs de Linha e Ponto.
Obviamente existem acessos que não precisam passar pela Rota (ex: listar pontos, listar linhas, alterar atributos de Ponto).
[quote=Thiago Dantas]Boa tarde, tenho um projeto em 3 camadas:
Business
Entity
DAO
Tenho uma dúvida quanto ao como acoplar objetos. Por exemplo, ao inserir Pedido chamaria o Business do Pedido que implementa as regras de negócios do pedido, não convém que classes de negócios do pedido implementem regras de negócios de outros objetos ( de item por exemplo ), seja chamando o outro business ou implementando o código na business de peido.
Como fazer esse acoplamento então, por exemplo para buscar um pedido.
Chamo a business do pedido, a própria business do pedido busca o item, ou teria que ter outra camada que pegaria pelo seu business do pedido e o item por seu Business com base no pedido já capturado?
O mesmo se aplica ao inserir.
Como fazer então?[/quote]
Entity e Business não são camadas diferentes, é tudo negócio, domínio.
Em relação à dúvida, concordo com o andre_salvati.