温馨提示:本文翻译自stackoverflow.com,查看原文请点击:design patterns - Is it correct to access the DAO layer from the Controller layer?
design-patterns architecture

design patterns - 从Controller层访问DAO层是否正确?

发布于 2020-03-27 11:34:00

在我的应用程序中,我通常访问DAO层以获取/保存或更新其存储库中的对象,并且我使用Service层执行更复杂的操作。

所以我的问题是:控制器访问DAO是否正确(根据最佳实践和设计/体系结构模式),还是应该通过服务绕过它谢谢!

查看更多

查看更多

提问者
Joaquín L. Robles
被浏览
79
octy 2011-05-26 04:53

理论上:在MVC架构模式的上下文中,数据访问层(DAO)和服务层之间没有明显的区别。服务层和DAO层都可以视为MVC中的“模型”。服务层可以很好地实现业务逻辑,复杂的验证等,但是它仍然是访问数据的层!只要您在Model,View和Controller对象之间保持清晰的关注点分离,从Controller对象访问DAO层就是正确的。

在实践中:我已经看到了两种情况。如果您的小型应用程序具有简单的数据模型,则可以直接从Controllers使用DAO层。但是,随着业务逻辑变得复杂,或者如果您的模型由多个应用程序共享,则将业务代表和DAO排除在外以便重新使用组件,最大程度地减少更改时的影响,提高之间的灵活性将更为有意义。组件等。这将由相关系统的技术架构决定。