0

我对这个问题想了很多,但找不到明确的答案:

正如我上次理解的那样,业务层应该只适用于模型对象。它不应该知道我们如何以及从我们获取这些数据的任何信息。它让我们可以独立于 DAO 使用业务层 API。

那么,在 Service 层中使用 DAO 方法调用是否正常,或者我们应该尝试减少它们之间的依赖关系。因此,我看到了层之间关系的两种变体:

  1. 控制器 -> 服务 -> 道
  2. 1步:modelObject = Controller –> Dao
    2步:Controller –> Service (modelObject)

那么,哪种变体是正确的?

4

1 回答 1

0

在旧架构中,有两层客户端和服务器。服务器保存所有数据库信息和逻辑。但是,三层架构带来了清晰的封装和层之间的清晰抽象。在两层架构中,没有很好的封装和抽象,并且可维护性,扩展能力是一个问题,因为层之间没有清晰的封装和抽象。客户端层不直接调用服务。而是使用代理来调用服务。对于客户端,它充当本地计算机程序来调用服务。因此,客户端通过中间层的服务器中的代理调用服务。在中间层中,您可以假设可以有控制器、服务、serviceImpl、模型,而没有任何与数据库相关的东西。中间可以有什么硬性规定层。只是一点是它不应该弄乱数据库的东西。在第三层有数据库。假设 dao 作为返回 db 相关结果的容器。客户端应该通过服务传递调用,dao 应该通过服务将结果传递给客户端。

于 2012-12-04T11:47:14.357 回答