维基百科说:
MVC 为数据库、用户和数据处理组件提供前端和后端。将软件系统分离为前端和后端简化了开发并分离了维护。
我仍然看不到模型-视图-控制器原理与前端和后端概念之间的联系。可以将访问数据库的模型视为后端,将视图视为前端吗?
维基百科说:
MVC 为数据库、用户和数据处理组件提供前端和后端。将软件系统分离为前端和后端简化了开发并分离了维护。
我仍然看不到模型-视图-控制器原理与前端和后端概念之间的联系。可以将访问数据库的模型视为后端,将视图视为前端吗?
好的..首先是条款:
如果您阅读GUI Architectures并总体上研究 MVC 模式,您就会明白MVC 不是后端和前端的分离。特别是当涉及到受 MVC 启发的模式时,我们将其用于 Web 应用程序。
MVC 和相关模式的目标是将表示与领域业务逻辑分开。
以下是 MVC 部分的基本职责:
举个例子:
这一切都可以通过客户端 JavaScript 完成。你可以让 MVC 三元组运行“前端”!同时,提供 REST API 的“后端”是一个类似 MVC 的结构。只有这一次视图生成 JSON 响应,而不是 HTML。
*结论:您可以在后端和前端使用 MVC 模式。**
由于您一直在使用 Rails 构建一些应用程序,因此您对 MVC 的理解可能有些曲解。我之所以这么说是因为,由于 RoR 最初是作为原型框架制作的(注意所有用于生成一次性代码的脚手架和其他功能),并且由于它的起源,Rails 实际上是在实现一个非常贫乏的 MVP 版本。
我称之为“贫血”,因为他们削弱了 View (它应该是 MVP 中的被动对象,而不是简单的模板)和模型层(是的,它应该是一个复杂的层,而不是 ORM 实例的集合)。
我建议您阅读两篇出版物以更好地掌握该主题:
第二个是尽可能接近模式的初始定义。这与“GUI 架构”文章一起,应该为您在该主题上打下坚实的基础。PoEAA 书(硬读,顺便说一句)会给你扩展它的上下文。
也许下图可以帮助..
MVC Human language backend/frontend
--------------- --------------- ---------------
model -> data -> backend
controllers -> actions -> backend/frontend (depends on implementation)
views -> GUI -> frontend
前端是用户看到哪些是视图。后端是控制器和模型。
在这种情况下,后端传统上意味着更深层次的操作系统代码,甚至是用户无法看到/控制的代码。
前端是用户看到的实际视图。