我对设计模式确实非常陌生,我经常遇到诸如服务
层、DAO
层和模型之类的词-编程中的 View Controller
。
由于 StackOverflow 是一个非常棒的平台,在解释概念和/或逻辑方面拥有许多非常有才华的观众。
我期待一个优雅的答案来解释所有这些之间的区别。我们什么时候使用它们?我们什么时候更喜欢 Service/DAO 架构而不是 MVC 模式?我们在 Service/DAO 架构中是否有 Controller ?我们可以通过哪些可能的组合来集成 Service/DAO 和 Model/View/Controller。
<小时/>这篇文章也将对所有有同样疑问的其他人有所帮助。好帖子一定要支持。请求版主不要将其作为其他问题的重复项来关闭,因为没有任何问题能够解决我的查询。
最佳答案
Service and DAO vs MVC
您不应将它们直接相互比较。服务和 DAO 构成任何 n 层应用程序中的层。 MVC 应用程序可以包含服务和 DAO。
服务层是一个通用术语,基本上充当应用程序域的入口点,通常包括业务逻辑。对于 Web 应用程序,您可以将业务逻辑层视为服务层,或者对于移动客户端,您可以公开 Web API 并将其视为服务层。简而言之,无论 GUI/客户端如何,您都应该能够按原样重用业务逻辑。
DAO只是抽象数据存储机制的对象。
MVC 是一种设计模式,其中 V 和 C “严格”构成表示层,而 M 可以包含超出表示层 (GUI) 的所有内容。 MVC 中的模型部分长期以来一直是一个基于观点的主题。但以下是我构建典型 MVC 应用程序的方式。
Presentation Layer
-> Views
-> ViewModels
-> Controllers
Service Layer
-> Includes business logic
-> Uses data access interfaces
Data Access Layer (DAOs)
-> Contracts (interfaces) for persistent storage
-> Interface implementations
Entities
-> POCO/ POJO that represent data
关于design-patterns - 服务和 DAO 与 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45490749/