有一个JavaEE应用程序,从下到上就这样分层:
实体 - >数据访问对象(DAO) - >控制器 - >门面
在这个架构中,Controllers
应该如何相互交谈?他们可以调用彼此的方法,还是必须通过DAO层完成?
答案 0 :(得分:1)
假设控制器代表您的业务层。
服务层中的EJB具有自己的层次结构是很常见的。在为客户端和UI提供更多通用功能作为API的同时,EJB可以为彼此提供细粒度的功能。所以,是的,同一层的对象可以相互通信,并且通常被设计为这样做。
其背后的基本原理是从内部功能中抽象外部API以及减少重复。
编辑:请不要在引入新依赖项时停止犹豫。在耦合,可测试性和架构一致性方面经常存在缺点。你永远不应该在同一层“从下面”使用一个层甚至一个对象 - 意味着从具有较低抽象的对象到具有较高抽象的对象。感觉不确定往往是暗示两次。