MVC模型结构是什么

为全栈而奋斗

Posted by MitnickEX on November 8, 2016

换过工作后接触的多是Web的项目,之前也做过一些Web app但是只是闷头做着业务测试,并没有对模型结构进行了解和学习,现在算是亡羊补牢了。

MVC是模型(Model)视图(Miew)控制(Controller)这三个单词上的首字母组成。它是一种目前广泛流行的应用模型,它的目的是实现Web系统的职能分工

下图所示为MVC模型关系图。

通常,模型负责封装应用程序数据在视图层展示。

  • 视图仅仅只是展示这些数据,不包含任何业务逻辑。
  • 控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。
  • 控制器收集这些数据及准备模型在视图层展示。

MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。

对于每一个用户输入的请求,MVC的处理过程是这样的:

  • 首先,被控制器接收,控制器决定用哪个模型来进行处理;
  • 然后,模型通过业务逻辑层处理用户的请求并返回数据;
  • 最后,控制器确定用哪个视图模型,用相应的视图格式化模型返回数据,并通过显示页面呈现给用户。

而通过MVC这种特殊的设计结构,大大提高了Web应用的开发效率。主要有以下几方面的优点:

  • 低耦合性(视图层和业务层分离);
  • 高重用性和可适用性(允许不同式样的视图访问同一个服务器端的代码,比如web的HTTP浏览器和无线浏览器WAP);
  • 较低的生命周期成本(开发和维护用户接口的技术含量降低);
  • 部署快速(不同部件的开发人员专注于自己那个模块);
  • 可维护性(分离视图层和业务逻辑层使Web应用更易于维护和修改);
  • 有利于软件工程化管理(由于采用分层的思想);