我有用户和角色实体以及它们的服务、DAO层。我需要从UserService获取角色列表。
从UserService中该使用哪一层?调用RoleService的列表方法还是RoleDAO的方法?哪个是常用的,为什么?
我有用户和角色实体以及它们的服务、DAO层。我需要从UserService获取角色列表。
从UserService中该使用哪一层?调用RoleService的列表方法还是RoleDAO的方法?哪个是常用的,为什么?
通常DAO层靠近数据库,Service层封装您的业务逻辑,执行任何事务或其他操作而不仅仅是调用DAO。
Service调用另一个Service更为常见,因为
您的RoleService可以有一些业务代码进行评估,您可以通过事务或通过JMS传递消息,或者将来可以在服务方法上具有一些安全性。因此,分离关注点是一个好的实践。
易于模拟服务并进行测试(即使可以争论DAO也可以进行测试),但通过使用服务层接口分离业务逻辑是一种好的方式。
但如果您的Service层没有任何业务逻辑,则可以通过简单地使用DAO来避免冗余代码(但如果您考虑到Service层业务,则将来需要重构)。
调用RoleService
中的列表方法。
角色周围的业务逻辑可能会有所改变,RoleService
中的所有更改来处理这些将对直接调用DAO的所有代码都无用。