MVC(Model-View-Controller)即”模型——视图——控制器“。MVC总是把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用就被分成3个层——模型层、视图层、控制层。
1)视图
视图代表用户交互界面,对于传统的桌面应用来说,视图代表着菜单、窗口、输入框等窗口界面元素;对于Web应用来说,视图可以概括为HTML界面。视图的功能就是与用户交互,接受用户的输入,并向用户显示信息。
2)模型
模型,它封装了所有的业务流程。业务模型的设计可以说是MVC最主要的核心,也是每个应用系统的核心所在。模型中一很重要的模型就是数据模型,数据模型主要指实体对象的表达。
3)控制器
视图负责与用户交互,接受用户的输入,并显示反馈信息。模型作为幕后英雄,完成对象的表达和对象操作,一个模型可能对应多个视图,一个视图可能对应多个模型。那么,该选用什么模型,该选用什么视图给用户呢?完成这项任务的就是控制器。控制器就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。从某种意义来说,模型有点像软件开发、测试等业务部门,视图有点像公司的销售、客服部门,而控制器就有点像老板。
当某个用户通过某个视图的控制器改变了模型的数据,所有其他依赖于这些数据的视图都应反映出这些变化。因此,无论何时发生了何种数据变化,控制器都分将变化通知所有的视图,导致显示的更新。模型、视图、控制器三者之间的关系和各自的主要功能如图所示