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