1

这是我关于 MVC 的注释:

  • 根据称为模型-视图-控制器 (MVC) 的架构模式组织的应用程序由三种主要类型的代码组成:

    1. 模型关注应用程序操作的数据:如何存储它,如何操作它,以及如何改变它。
      • MVC 应用程序通常为应用程序操作的每种类型的实体都有一个模型。
      • 因为模型处理应用程序的数据,它们包含与存储层通信的代码。
    2. 视图呈现给用户并包含有关用户可以与之交互的模型的信息。
      • 视图充当系统用户与其数据之间的接口;例如,在烂土豆中,您可以通过单击视图中的链接或按钮来列出电影并添加新电影。
    3. 控制器在两个方向上协调交互:当用户与视图交互时(例如,通过单击网页上的某些内容),将调用与该用户活动相对应的特定控制器操作。
      • 每个控制器对应一个模型,在 Rails 中,每个控制器操作都由该控制器内的特定 Ruby 方法处理。
      • 控制器可以要求模型检索或修改信息;根据这样做的结果,控制器决定将在用户旁边显示什么视图,并为该视图提供任何必要的信息。
  • Schema——所有表及其结构的集合

测验问题:

假设 RottenPotatoes.com 想要启动 m.rottenpotatoes.com,它是移动客户端站点的替代版本。如果站点是使用 MVC 架构构建的,则大部分工作将用于编写新的

  1. 意见
  2. 楷模
  3. 控制器
  4. 图式

RottenPotatoes 是一个存储电影及其评分的电影数据库。如果用户搜索电影并且该电影不在 RottenPotatoes 数据库中,则该电影将被添加到数据库中。

根据我的笔记,“MVC 提倡瘦视图和控制器”。所以我消除了(1) 视图(3) 控制器

这给我留下了(2) models(4) schema。根据他们的定义,我选择了(2) 个模型作为我的答案,因为它似乎包含最多的信息。

我的答案不正确,所以我想知道我犯了什么错误,哪个答案更合适。

4

4 回答 4

5

如果此站点想要移动到移动版本,则实际数据或功能不会发生任何变化。只有网站的外观会改变。

  • 模型和模式:这些与原始数据以及对其进行操作有关。所以这不会改变。
  • 控制器:这些是网站的功能,即按下此按钮会发生什么。这也不会改变。
  • 视图:视图是向用户呈现数据的方式,即如何显示该数据或该按钮的位置。这在移动版本中发生变化。

正确答案应该是意见。

于 2013-08-02T21:34:15.850 回答
2

您对 MVC 提倡瘦视图和控制器的前提是正确的,但您从中得出了错误的结论。

正确答案是views。这背后的想法是,桌面网站和移动网站之间只有最前面的标记应该不同;无论使用何种设备访问站点,驱动视图(控制器)的逻辑和其中使用的数据(模型和模式)都应该相同。

在完美架构的 MVC 应用程序中,唯一会在桌面版和移动版之间发生变化的元素是视图。当然,在现实世界中,通常需要进行更多调整以支持不同的场景或上下文。

于 2013-08-02T21:34:23.207 回答
1

根据我的笔记,“MVC 提倡瘦视图和控制器”。所以我消除了(1)视图和(3)控制器。

那是胡说八道。

MVC 提倡关注点分离。真正的MVC中的视图(不是 Rails 伪装成“mvc”的那个玩笑)负责 UI 逻辑。他们通过从多个模板组装响应并将演示对象应用于所述模板来生成响应。

视图不是愚蠢的模板。

添加另一个界面供用户访问显然是属于“UI逻辑”的任务。

于 2013-08-02T22:52:50.140 回答
0

视图是唯一可能需要更改的东西,如果您可以做出良好的响应式设计,这也是值得怀疑的。

于 2013-08-02T23:43:01.550 回答