一、MVC思想概述
MVC思想最早是由Trygve M.H.Reenskau提出,他是挪威的计算机专家,MVC是他在1979年访问施乐帕克研究中心期间提出的一种主要针对GUI应用的软件架构模式。
MVC思想体现了“关注点分离”这一基本方针,它将一个人机交互的应用涉及的功能分为Model、Controller、View三部分,他们各自的职责如下。
- Model是对应用状态和业务功能的封装,我们可以将它理解为同时包含数据和行为的领域模型(Domain Model),Model接收Controller的请求并完成相应的业务处理,在应用状态改变的时候可以向View发出相应的通知。
- View实现可视化界面的呈现并最终捕获用户的交互操作(如鼠标、键盘操作);
- View捕获到用户的交互操作后直接发给Controller,Controller完成相应的UI逻辑。如果需要涉及业务功能的调用,Controller会直接调用Model.在完成UI处理之后,Controller会更加需要控制原View或者创建新的View对用户交互操作予以响应。
下图揭示了MVC模式下Model、View和Controller之间的交互。对于传统的MVC模式,很多人认为Controller仅仅是View和Model之间的中介,实则不然,View和Model存在直接的联系。View可以直接调用Model查询其状态信息。当Model状态发生改变的时候,它也可以直接通知View。比如在一个提供股票实时价位的应用中,维护股价信息的Model在股价变化的情况下可以直接通知相关的View改变其显示信息。