从另一个服务调用服务vs dao

时间:2015-08-17 11:48:57

标签: java dao layer business-logic-layer

我有用户和角色实体和服务,DAO图层。我需要来自UserService的角色列表。

我应该在UserService中使用哪个图层? RoleService vs RoleDAO 的调用列表方法?哪一个是常用的,为什么?

2 个答案:

答案 0 :(得分:9)

通常DAO层靠近数据库,服务层封装你的业务逻辑,执行任何事务或其他事情,而不仅仅是调用DAO。

服务呼叫另一项服务更常见,因为

  1. 您的RoleService可以评估一些业务代码,您可以从事务中受益或通过JMS传递消息,或者您可以在将来对服务方法有一些安全性。因此,分离问题是一种良好的做

  2. 易于模拟服务和测试(甚至可以证明DAO可以被测试),但通过使用服务层接口分离业务逻辑是一种好方法。

  3. 但是如果你在服务层没有任何业务逻辑,你可以通过简单地使用DAO来避免冗余代码(但是如果考虑服务层业务,将来你将有重构代码债务)

答案 1 :(得分:2)

RoleService

中调用list方法

Roles周围的业务逻辑可能会改变一天,而RoleService中的所有更改都将对所有直接调用DAO的代码无效。