软件架构中的MVC模式

文章类别 in 设计模式

MVC 模式

MVC是一种软件的架构模式,也就是分成了三层,

  • M 模型层 (Model)
  • V 视图层 (View)
  • C 控制层 (Controller)

想象一下这样的一个场景,你发现今天非常热,室外的温度达到30好几,于是你拿起空调的遥控,按了一下 开/关 按钮,这个时候空调开启,你选择了 制冷 功能,这时候空调开始往室内运送冷气,不过你觉得温度还不够给力,于是你调到了16度,你觉得很爽,开始美美的睡上一觉!

那么,说这个和软件架构中的MVC模式有什么关系呢?

其实…

我们可以从这个场景中解释什么是MVC模式,当你拿起空调遥控的时候,看到遥控上有按钮供你选择,比如 「开/关」 ,「制冷」 ,「左右扫风」等, 还有温度,风力等的显示。 我们可以把遥控的这些直观的东西看成是View(视图)层。

而空调内部的机制,比如产生冷气的装置, 我们就可以看成是Model(模型)层

当你 按了一下 开/关 按钮来开启空调,你选择了 制冷 功能,调到了16度 这些输入信息转化成空调产生冷气的操作,可以用 控制层(Controller)来实现。

MVC

所谓视图(View)就是我们可以直观看到的,一个操作界面的样子,我们可以直观感受得到,看的见的。我们上网看到的网页里面的内容,app的界面,这都是视图(View)。

而模型(Model)是程序里面应有的功能,里面实现了算法,还有数据库的管理以及实现了具体数据操作等功能。

控制(Controller)则是负责转发请求,对请求进行处理,控制应用程序的流程,处理用户的行为和数据的改变,并作出响应。

它们三者之间互相独立,是一种模块化的架构思想。这样做的目的是使后续对程序的修改和扩展得到了简化,使程序的某一部分代码的重复利用成为一种可能。

这样的好处在于:

低耦合,MVC模式使得这三个模块互相独立,我们改变其中一个模块都不会影响到其它两个,使程序的复杂度得到了简化,程序结构更加直观易懂。

可复用,多个View可以共享一个Model,比如你在PC端上某网站看视频,看到一半想用手机看,这时候你会下载它对应的app进行观看视频,这就要求他们能够提供PC端的视频网站的界面和手机app上的界面给你使用。这时候他们只需要改变View层上的界面而已,对于Model层的响应用户请求和返回数据一点影响也没有。View只是负责将Model传来的数据格式化然后渲染到响应的界面即可。这样就能让业务逻辑和表示层分离,同一个Model可以给N个不同的View重用。大大的提高了代码的重用!

这种MVC的架构思想不仅可以用于软件架构上,生活上许多方面其实也可以用MVC模块化的方式去管理,肯定会大大的提高效率,只要你细心发现,从MVC的角度去架构,然后针对不同的层去优化,相信能有一个美好的未来,再也不用从快递员的手中接过你的“女朋友”了!

TAG:MVC模式低耦合可复用模型层ModelView视图控制层Controller

相关文章

相关资料