【发布时间】:2015-11-10 01:03:34
【问题描述】:
我有用户和角色实体和服务,它们的 DAO 层。我需要来自 UserService 的角色列表。
我应该从 UserService 中使用哪个层? RoleService vs RoleDAO 的调用列表方法?哪一个是常用的,为什么?
【问题讨论】:
标签: java dao layer business-logic-layer
我有用户和角色实体和服务,它们的 DAO 层。我需要来自 UserService 的角色列表。
我应该从 UserService 中使用哪个层? RoleService vs RoleDAO 的调用列表方法?哪一个是常用的,为什么?
【问题讨论】:
标签: java dao layer business-logic-layer
调用RoleService中的list方法。
围绕角色的业务逻辑可能有一天会发生变化,RoleService 中的所有更改都将无法处理所有直接调用 DAO 的代码。
【讨论】:
通常 DAO 层靠近数据库,Service 层封装你的业务逻辑,执行任何事务或其他事情,而不仅仅是调用 DAO。
服务调用另一个服务更常见,因为
您的 RoleService 可以评估一些业务代码,您可以从事务或通过 JMS 传递消息中受益,或者您可以在将来对服务方法进行一些安全保护。因此,分离关注点是一种很好的做法。
易于模拟服务和测试(甚至可以测试DAO),但是使用服务层接口分离业务逻辑是一个好方法。
但是如果你在服务层没有任何业务逻辑,你可以通过简单地使用DAO来避免冗余代码(但将来如果你想到服务层业务,你将有代码债务重构)
【讨论】: