您所在位置: 网站首页 / windows编程技术12文档与视图.doc / 文档详情
windows编程技术12文档与视图.doc 立即下载
2024-09-12
约3.6万字
约51页
0
1.8MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

windows编程技术12文档与视图.doc

windows编程技术12文档与视图.doc

预览

免费试读已结束,剩余 46 页请下载文档后查看

15 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第12章文档与视图
MFC提供了将应用程序的数据与显示分开的文档-视图结构,它为应用程序提供了统一的框架,参见图12-1。对应的MFC应用程序的有关类及其MFC基类,可以参见2.2.5节的图2-9和图2-10。MFC的文档-视图结构是MVC模式的一种部分实现。
12.1MVC
图12-1SDI应用程序中的对象
MVC是一种软件架构模式,通过分解程序的不同功能,达到降低程序设计的复杂度、利于程序员专业分工、简化程序的维护和扩展的目的。MVC是1979年挪威计算机科学家TrygveReenskaug在Xerox(施乐公司)PARC(PaloAltoResearchCenter,帕洛阿尔托研究中心)工作时,为(历史上第二个面向对象程序设计语言和第一个真正的集成开发环境)SmallTalk提出的。
12.1.1概念
MVC(Model-View-Controller,模型—视图—控制器)是一种软件架构模式,它把软件系统分为如下三个基本部分(参见图12-2):
模型(Model)——数据(库)。
视图(View)——图形界面(显示/表示)。
控制器(Controller)——程序功能(算法)。
图12-2MVC模式的关系图
MVC模式的目的是实现一种动态的程序设计,简化对程序的后续修改和扩展,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。
软件系统通过对自身基本部份分离的同时,也赋予了各个基本部分应有的功能,专业人员可以通过自身的专长进行分组合作:数据库专家利用“模型”进行数据管理和数据库设计、界面设计人员利用“视图”进行图形界面设计、而程序员则利用“控制器”编写程序应有的功能(实现算法等等)。
12.1.2层次
模型(Model,数据模型)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。(比较:观察者模式(软件设计模式))
视图(View)视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
控制器(Controller)控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。
12.1.3实现
SmallTalk
1980年MVC最早被应用于XeroxPARC的面向对象、动态类型、自反射的编程语言SmallTalk-80环境中,运行在首个具有GUI的原型计算机Alto(男高音)上。
MacApp
1985年Apple将MVC用于其推出的MacOS系统的面向对象的应用程序框架MacApp中,这是MVC首次在商用产品中的实际应用。
MFC
1993年2月微软在其随VisualC++1.0推出的MFC2.0中,引入了文档-视图(Document/View)架构,它也是一种对于MVC的早期部分实现。MFC将程序分成视图(View)和文档(Document)两大类,其中的CDocument对应MVC中的数据模型(Model),CView相当于MVC中的视图+控制(View+Controller),再加上应用程序类CWinApp,合成三大项。
但是MFC基本上是一个失败的MVC作品。由于MFC对Document/View的定义过于模糊,未将Controller(消息映射)部份取出,因此Controller既可置入View也可置入Document,但不管置入哪一方面,都会与View或Document绑死而缺乏弹性。
JavaEE——Struts
1999年12月Sun推出的JavaEE(JavaEnterpriseEdition,Java企业版,原来叫J2EE)和其他的各种框架不一样,它为模型对象(ModelObjects)定义了一个规范。典型例子是由CraigMcClanahan于2000年5月所开发的开源JavaEE轻型Web应用框架ApacheStruts。
视图(View)——在JAVAEE应用程序中,视图(View)可能由JSP(JavaServerPage,爪哇服务器网页)承担。生成视图的代码则可能是Servlet的一部分,特别是在客户端服务端交互的时候。
控制器(Controller)——JAVAEE应用中,控制器可能是一个Servlet。
模型(Model)——模型则是由
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

windows编程技术12文档与视图

文档大小:1.8MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用