我对这个问题已经考虑了很多,但在这方面找不到一些明确的答案:
正如我上次所理解的那样,业务层应仅适用于模型对象。它不应该知道我们如何获取这些数据。它允许我们独立于DAO使用业务层API。
因此,在Service层内使用DAO方法调用是否正常,或者我们应该尝试减少它们之间的依赖关系。因此,我看到了两层之间关系的两种变体:
那么,哪种变体是对的?
答案 0 :(得分:0)
在旧架构中有2层客户端和服务器。服务器保存所有数据库信息和逻辑。但是,三层架构带来了明确的封装和层之间的清晰抽象。在两层架构中没有良好的封装和抽象和可维护性程度,扩展能力是一个问题,因为层之间没有明确的封装和抽象。客户层不直接调用服务。而是使用代理来调用服务。对于客户端,它充当本地计算机程序所以,客户端通过代理呼叫服务在中间层的服务器中。在中间层你可以假设可以有控制器,服务,serviceImpl,模型没有任何数据库相关的东西。有硬性和快速的规则什么可以在第三层有数据库.Assume dao作为返回数据库相关结果的容器。客户端应该通过服务传递调用a nd dao应该通过服务将结果传递给客户端。