模型-视图-控制器——系统结构模式学习笔记
2011-06-13 21:16
549 查看
MVC体系结构模式将一个交互式系统分为三个组件。模型包含核心功能和数据。视图向用户显示信息。控制器处理用户输入。视图和控制器共同构成了用户接口。变更传播机制保证了用户接口和模型之间的一致性。其实,订阅者模式也可以有此保证。
1. 例子
一个简单的政治选举系统。
2. 语境
具有灵活的人机接口的交互式系统。
3. 问题
功能和数据保持稳定,但是用户接口经常发生更改。
1) 相同的信息在不同的窗口有不同的显示。
2) 实时性,对数据的操作要能够实时的反映到各个显示。
3) 用户接口易于更改,而且可能在运行期更改。
4) 对用户接口的更改不影响程序内核。
4. 解决方案
1) 模型封装了程序核心的数据和功能,独立于视图和控制器;(也可以理解为一种微内核结构)
2) 视图和控制器将用户的操作转化为对对核心数据(功能)的读取和更改;
3) 一个模型可能对应多个视图;
4) 一个视图对模型的更改,模型要及时通知给所有的视图。
5. 结构
模型组件包含了应用程序的功能内核,封装了功能和数据的接口,供视图调用,访问;
变更传播机制:视图向模型注册,如果模型发生更改,模型通过此注册通知视图,实现变更传播机制。
视图组件向用户显示信息,视图向模型注册来实现更改传播机制。
控制器接收用户的输入,将用户的输入转化为对视图的调用。
6. 动态特性
7. 实现
1) 分离出核心功能。将核心功能和数据从用户输入输出中分离出来,并对外提供给视图访问接口。
2) 实现变更传播机制。可以采用订阅者模式。
3) 设计并实现视图。设计视图的外观,设计对控制器的接口。
4) 设计并实现控制器。
5) 创建动态视图。
8. 效果
优点:
1) 同一模型多视图;
2) 同步化视图。(变更传播机制)
3) 可插入的视图和控制器。
4) 框架潜力。
不足:
1) 增加了复杂度;
2) 潜在的过多的更新因素。
3) 视图和控制器的紧密连接。
4) 视图控制器与模型的紧密耦合。
5) 视图中数据访问的低效率。
1. 例子
一个简单的政治选举系统。
2. 语境
具有灵活的人机接口的交互式系统。
3. 问题
功能和数据保持稳定,但是用户接口经常发生更改。
1) 相同的信息在不同的窗口有不同的显示。
2) 实时性,对数据的操作要能够实时的反映到各个显示。
3) 用户接口易于更改,而且可能在运行期更改。
4) 对用户接口的更改不影响程序内核。
4. 解决方案
1) 模型封装了程序核心的数据和功能,独立于视图和控制器;(也可以理解为一种微内核结构)
2) 视图和控制器将用户的操作转化为对对核心数据(功能)的读取和更改;
3) 一个模型可能对应多个视图;
4) 一个视图对模型的更改,模型要及时通知给所有的视图。
5. 结构
模型组件包含了应用程序的功能内核,封装了功能和数据的接口,供视图调用,访问;
变更传播机制:视图向模型注册,如果模型发生更改,模型通过此注册通知视图,实现变更传播机制。
视图组件向用户显示信息,视图向模型注册来实现更改传播机制。
控制器接收用户的输入,将用户的输入转化为对视图的调用。
6. 动态特性
7. 实现
1) 分离出核心功能。将核心功能和数据从用户输入输出中分离出来,并对外提供给视图访问接口。
2) 实现变更传播机制。可以采用订阅者模式。
3) 设计并实现视图。设计视图的外观,设计对控制器的接口。
4) 设计并实现控制器。
5) 创建动态视图。
8. 效果
优点:
1) 同一模型多视图;
2) 同步化视图。(变更传播机制)
3) 可插入的视图和控制器。
4) 框架潜力。
不足:
1) 增加了复杂度;
2) 潜在的过多的更新因素。
3) 视图和控制器的紧密连接。
4) 视图控制器与模型的紧密耦合。
5) 视图中数据访问的低效率。
相关文章推荐
- 模型-视图-控制器——系统结构模式学习笔记
- Microsoft .NET 的企业解决方案模式 > Web 表示模式 > 模型-视图-控制器(学习笔记四)
- php CI框架学习笔记第一期(目录结构,控制器,视图)
- OPENCV学习笔记3-4_使用模型-视图-控制器设计应用程序
- 模型-视图-控制器MVC模式学习笔记
- 表示-抽象-控制——系统结构模式学习笔记
- 表示-抽象-控制——系统结构模式学习笔记
- 设计模式学习笔记--前端控制器模式
- 学校学习ios教程笔记,第十二节初识ios控制器中的标签视图控制器
- 【我的《冒号课堂》学习笔记】设计模式(2)结构模式
- OPENCV学习笔记3-2_用控制器设计模式实现功能模块间通信
- 原始模型(Prototype)模式学习笔记
- ubuntu 文件系统结构(学习笔记)
- ios学习笔记(六)视图控制器
- [学习笔记]UML小结以及基于领域模型的系统设计初步
- Sharepoint学习笔记 –架构系列—Sharepoint的服务器端对象模型(Server Object Model) 2.内容层次结构
- 系统分析与设计学习笔记(四)领域模型
- 2018年3月第二周学习笔记(MVVM代码框架,UIViewController的子类视图控制器,String和SubString
- OpenCV学习笔记-用控制器设计模式实现功能模块间的通信
- Unity3D之Mecanim动画系统学习笔记(二):模型导入