换过工作后接触的多是Web的项目,之前也做过一些Web app但是只是闷头做着业务测试,并没有对模型结构进行了解和学习,现在算是亡羊补牢了。
MVC是模型(Model)、视图(Miew)、控制(Controller)这三个单词上的首字母组成。它是一种目前广泛流行的应用模型,它的目的是实现Web系统的职能分工。
下图所示为MVC模型关系图。
通常,模型负责封装应用程序数据在视图层展示。
- 视图仅仅只是展示这些数据,不包含任何业务逻辑。
- 控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。
- 控制器收集这些数据及准备模型在视图层展示。
MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。
对于每一个用户输入的请求,MVC的处理过程是这样的:
- 首先,被控制器接收,控制器决定用哪个模型来进行处理;
- 然后,模型通过业务逻辑层处理用户的请求并返回数据;
- 最后,控制器确定用哪个视图模型,用相应的视图格式化模型返回数据,并通过显示页面呈现给用户。
而通过MVC这种特殊的设计结构,大大提高了Web应用的开发效率。主要有以下几方面的优点:
- 低耦合性(视图层和业务层分离);
- 高重用性和可适用性(允许不同式样的视图访问同一个服务器端的代码,比如web的HTTP浏览器和无线浏览器WAP);
- 较低的生命周期成本(开发和维护用户接口的技术含量降低);
- 部署快速(不同部件的开发人员专注于自己那个模块);
- 可维护性(分离视图层和业务逻辑层使Web应用更易于维护和修改);
- 有利于软件工程化管理(由于采用分层的思想);