Joa*_*les 13 architecture design-patterns
在我的应用程序中,我通常访问DAO层以获取/保存或更新对象的存储库,并使用服务层执行更复杂的操作.
所以我的问题是:从Controller层访问DAO层是否正确(根据最佳实践和设计/架构模式),还是应该通过服务层绕过它?谢谢!
oct*_*cty 27
理论上:在MVC架构模式的上下文中,数据访问层(DAO)和服务层之间没有明显的区别.服务层和DAO层都可以被视为MVC中的"模型".服务层可能很好地实现业务逻辑,复杂的验证等等 - 但它仍然是访问数据的层!只要您在Model,View和Controller对象之间保持清晰的关注点分离,从Controller对象访问DAO层就是正确的.
在实践中:我见过两种情景.如果您的应用程序具有简单的数据模型,则直接从控制器使用DAO层是有意义的.但是,由于业务逻辑变得复杂,或者您的模型由多个应用程序共享,因此将业务代表和DAO分解以重新使用组件,最小化更改时的影响,提高之间的灵活性更有意义.组件等.这将由所讨论的系统的技术架构决定.