若转载教程,请注明出自SW-X框架官方文档1

1、简述

如何设计一个程序的结构,这是一门专门的学问,叫做”架构模式”(architectural pattern),属于编程的方法论。
MVC模式就是架构模式的一种,它对我的启发特别大。我觉得它不仅适用于开发软件,也适用于其他广泛的设计和组织工作。
下面是我对MVC模式的一些个人理解,不一定正确,主要用来整理思路。
2、MVC分布代表什么
MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。
这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。

  1. 1)最上面的一层,是直接面向最终用户的"视图层"View)。它是提供给用户的操作界面,是程序的外壳。
  2. 2)最底下的一层,是核心的"数据层"Model),也就是程序需要操作的数据或信息。
  3. 3)中间的一层,就是"控制层"Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。
这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。
用一辆汽车来解释MVC,车的颜色,形状等外观因素就是View(视图);而车的中控系统就相当于Controller(控制),当指令被中控系统传达给各个汽车零件处理时,这些零件就是Model(模型)。
MVC模式将它们分离以提高系统的灵活性和复用性,不使用MVC模式,用户界面设计往往将这些对象混在一起。
MVC模式实现了模型和视图的分离,这带来了几个好处:

  1. 1)一个模型提供不同的多个视图表现形式,也能够为一个模型创建新的视图而无须重写模型。一旦模型的数据发生变化,模型将通知有关的视图,每个视图相应地刷新自己。
  2. 2)模型可复用。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。
  3. 3)提高开发效率。在开发界面显示部分时,你仅仅需要考虑的是如何布局一个好的用户界面;开发模型时,你仅仅要考虑的是业务逻辑和数据维护,这样能使开发者专注于某一方面的开发,提高开发效率。

image.png
如图所示,视图中用户的输入被控制器解析后,控制器改变状态激活模型,模型根据业务逻辑维护数据,并通知视图数据发生变化,视图得到通知后从模型中获取数据刷新自己。