Sushi解释模型-视图-控制器

了解MVC模式和辣蛋黄酱

模型-视图-控制器(MVC)模式将Web应用程序的输入,处理和输出分开,并以三个易于理解的部分组织交互:模型,视图和控制器。

…如果我们像寿司店那样想的话,甚至更容易理解。

我进入章鱼DTLA,这是USC学生的便宜寿司场所和赛前场所。 我坐在寿司吧,看厨师马克,点菜。

“请给我一个红色的龙卷。”

我是用户我的寿司订单是请求。 对我来说,我的订单是美味的金枪鱼和鳄梨奶油(见上图)。

当我说出我的订单时,对于像马克这样有经验的厨师,他知道该做什么。 马克的大脑是控制者。 他认为滚动是一系列步骤:

  1. 煮饭。
  2. 将金枪鱼,鳄梨和黄瓜切成1厘米见方的棍棒。
  3. 将寿司从里到外滚动,将食材和辛辣的蛋黄酱作为馅料。
  4. 切卷。
  5. 撒上飞鱼子,炸洋葱和黑芝麻。

对Mark来说,此过程类似于制作加州卷或费城卷,但根据每个订单的独特成分而有所不同。

如果我点炸鸡怎么办?

马克在值班。 他不能把自己的职位留在寿司吧后面。 他只能使用我们提供给他的工具和资源。 这个有限的工具集就是模型,在我们的示例中包括寿司刀,竹辊,他的手,芥末,鱼的种类,调味料等。完成的卷就是视图。

视图由模型的有限选项构建而成,并通过控制器进行排列和传输。

让我们退后一步,从产品管理的角度思考为什么这种MVC模式很棒。 假设您的客户想要重新设计您的应用程序。 如果您将视图和逻辑结合在一起,则重新蒙皮很烂。 确实,主要优点是MVC使模块化的模型类无需修改即可重用。

MVC体系结构将关注点分开,并允许独立进行推理。 这是创建用户界面的非常有效的创新方法。 通过创建彼此独立的组件,开发人员可以快速轻松地在其他应用程序中重用,并进行修改而不会影响整个模型。

TL; DR:

MVC或模型视图控制器是一种架构模式,通常以流行的Web框架的形式使用。

  1. 模型-模型代表知识。 它们可以是单个对象,也可以是对象的结构。 它们构造和存储数据,然后根据控制器的命令进行准备和检索。 在电话应用程序中,模型对象可以是游戏中的角色,通讯录中的联系人。 用数据结构的术语来说,模型就是图。
  2. 视图-思考UI。 用户可以看到视图,并根据他们的操作显示数据。 它与单个DOM节点相对应,并且可以由子视图组成。 用数据结构的术语来说,视图就是树。
  3. 控制器-决定用户的视图输入是什么,并将这些命令发送到模型,并将模型数据提供给视图和系统。 解释用户操作,例如单击按钮。 有时,基于框架,可以与视图结合(例如在Backbone.js中)。