在使用Dao和Service and Controller时,这是一个体系结构问题:
假设: 在DAO层中,有DAO类,称为:Dao1,Dao2,...
在服务层中,有一些服务类,称为:Service1,Service2,...
在控制器层中,有一些控制器类,称为:Controller1,Controller2,...
Service1需要注入Dao1,而 Service2
Controller1需要注入Dao2,Service1和 Controller2
此体系结构是否遵循JEE原则?有什么问题吗?
最好说:服务只能注入Dao,而Controlleur只能注入Service?
答案 0 :(得分:1)
根据我的理解,JEE没有提及/推荐设计模式。 JEE定义了跨不同领域(例如事务,jdbc,jax-rs等)的API集,这些API的实现由不同的供应商提供。因此,JEE标准有助于开发企业应用程序,但它们并没有规定任何设计原则。因此,我想您的问题是这种体系结构是否遵循良好的设计模式,是否存在任何问题。
理想情况下,根据您的第二个问题,控制器不得插入dao类。控制器只能调用服务,而服务应注入dao类并调用其方法。这种设计提供了控制器,服务和dao层之间的松散耦合。这样,如果dao类方法的签名发生更改,则控制器层将保持不变,只有服务层需要更改。
通常来说,大多数设计都试图尽可能地实现松散耦合和高内聚。
希望这会有所帮助!