一、模型–视图–控制器(MVC)
1.基本概念
MVC(Model-View-Controller)模型由Trygve Reenskaug博士在20世纪70年代提出,并
最早在面向对象编程语言 Smalltalk-80中实现。MVC强调将用户的输入、数据模型和数据表示方式分开设计,一个交互式应用系统由模型、视图和控制器3个部分组成,分别对应内部数据、数据表示和输入/输出控制部分,其结构如下图所示。
- 模型
模型对象代表应用领域中的业务实体和业务逻辑规则,是整个模型的核心,独立于外在的显示内容和显示形式。模型对象的变化通过事件通知视图和控制器对象。采用了发布者/订阅者方式,模型是发布者,视图和控制器是订阅者。对于模型而言,并不知道自己对应的视图控制器;但控制器可以通过模型提供的接口改变模型对象,接口内封装了业务数据和行为。
- 视图
视图对象代表GUI对象,用用户熟悉和需要的格式表现模型信息,是系统与外界的交互接口。视图订阅模型可以感知模型的数据变化,并更新自己的显示。视图对象也可以包含子视图,用于显示模型的不同部分。在多数的MVC实现技术中,视图和控制器常常是一一对应的。
- 控制器
控制器对象处理用户的输人,并给模型发送业务事件,再将业务事件解析为模型应执行的动作;同时,模型的更新与修改也将通过控制器来通知视图,保持视图与模型的一致。
MVC的整个处理流程为:
- 系统拦截到用户请求,根据相应规则(多数采用路由技术)将用户请求交给控制器,控制器决定哪个模型来处理用户的请求;
- 模型根据业务逻辑处理完毕后将结果返回给控制器;
- 然后控制器将数据提交给视图;
- 视图把数据组装之后,呈现给用户。
其中,模型处理所有的业务逻辑和规则,视图只负责显示数据,控制器负责用户的请求,这样将业务