Presentation、Service 和 DAO 层关系
Posted
技术标签:
【中文标题】Presentation、Service 和 DAO 层关系【英文标题】:Presentation, Service and DAO layers relationships 【发布时间】:2012-11-22 00:18:36 【问题描述】:我对这个问题想了很多,但找不到明确的答案:
正如我上次理解的那样,业务层应该只适用于模型对象。它不应该知道我们如何以及从我们获取这些数据的任何信息。它让我们可以独立于 DAO 使用业务层 API。
那么,在 Service 层中使用 DAO 方法调用是否正常,或者我们应该尝试减少它们之间的依赖关系。因此,我看到了层之间关系的两种变体:
-
Controller –> Service –> Dao
1步:modelObject = Controller –> Dao
2步:控制器->服务(模型对象)
那么,哪种变体是正确的?
【问题讨论】:
【参考方案1】:在旧架构中,有两层客户端和服务器。服务器保存所有数据库信息和逻辑。但是,三层架构带来了清晰的封装和层之间的清晰抽象。在两层架构中,没有很好的封装和抽象和可维护性,扩展能力是一个问题,因为层之间没有明确的封装和抽象。客户端层不直接调用服务。而是使用代理来调用服务。对于客户端,它充当本地计算机程序调用服务。因此,客户端通过中间层的服务器中的代理调用服务。在中间层中,您可以假设可以有控制器、服务、serviceImpl、模型而没有任何与数据库相关的东西。有硬性规定可以做什么在中间层。只是一点是它不应该弄乱数据库的东西。在第三层有数据库。假设 dao 作为返回数据库相关结果的容器。客户端应该通过服务 a 传递调用nd dao 应该通过服务将结果传递给客户端。
【讨论】:
感谢您的回复。我知道 DAO 层(数据库人员)应该与其他系统层隔离。我的问题是关于哪种应用层关系变体更合适。以上是关于Presentation、Service 和 DAO 层关系的主要内容,如果未能解决你的问题,请参考以下文章
ppt和pdf转图片(Spire.Presentation)