您的位置:首页 > 其它

模型-视图-控制器——系统结构模式学习笔记

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) 视图中数据访问的低效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: