MVC模式基本上成为了开发各种应用程序的标准设计模式,因为它恰好将数据、操作、展现很自然的分立,且又巧妙的关联在一起。

Model:即模型,代表数据(数据不仅仅是数字,还包括字符、图像、声音等等),是对大千世界中某些部分的一一映射。

View:即视图,代表展现,即将Model进行可视化(不一定是看,听、打印等等都可以)

Controller:即控制器,代表操作,这里的操作主要是针对Model部分。

通常流程应该是:

  • 用户在某View上通过某种方式,触发了Controller
  • Controller根据接收到的信息,更新Model(增删改查、计算等等),并将更新后的Model输出给View
  • View根据接收到的Model,重新展现给用户
  • 用户继续第一步

也可以理解为:View =〉Controller(Model) =〉View,由此可以看出,Controller是核心所在,每个Controller会有一个输入,也会有一个输出。但View触发哪一个Controller,输出又到哪里的View,这就需要Router(路由)。

Router:即路由,是一张定义的表格,描述:
1、什么样的输入(对于Web来说就是一个访问路径,例如/blog/post)
2、对应到什么样的Controller(例如/blogcontroller/post,即blogcontroller类下的post方法)

这样当访问/blog/post的时候,就会自动调用/blogcontroller/post方法来执行并输出,至于输出到哪里,则由post方法内部定义好,它可以直接输出html格式字符串,也可以输出到一个模板上,甚至输出到打印机上也可以。

发表评论