【问题标题】:call service vs dao from another service从另一个服务调用服务 vs dao
【发布时间】:2015-11-10 01:03:34
【问题描述】:

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

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

【问题讨论】:

    标签: java dao layer business-logic-layer


    【解决方案1】:

    调用RoleService中的list方法。

    围绕角色的业务逻辑可能有一天会发生变化,RoleService 中的所有更改都将无法处理所有直接调用 DAO 的代码。

    【讨论】:

    • 是的,我一开始也是这么想的。但是Service称它为DAO,我认为仅从服务层调用DAO可能是个好主意(可能有一些原因),因为服务层用于调用dao。
    • 服务调用服务完全没问题
    【解决方案2】:

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

    服务调用另一个服务更常见,因为

    1. 您的 RoleService 可以评估一些业务代码,您可以从事务或通过 JMS 传递消息中受益,或者您可以在将来对服务方法进行一些安全保护。因此,分离关注点是一种很好的做法。

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

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

    【讨论】:

      猜你喜欢
      • 2017-04-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多