第12章文档与视图教材

第12章文档与视图教材

ID:43545380

大小:781.70 KB

页数:56页

时间:2019-10-10

第12章文档与视图教材_第1页
第12章文档与视图教材_第2页
第12章文档与视图教材_第3页
第12章文档与视图教材_第4页
第12章文档与视图教材_第5页
资源描述:

《第12章文档与视图教材》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第12章文档与视图MFC提供了将应用程序的数据与显示分开的文档■视图结构,它为应用程序提供了统一的框架,参见图12・1和图12-2oMFC的文档■视图结构是MVC模式的一种部分实现。图12-2文档-视图结构中各种对象及其创建与关系12.1MVCMVC是一种软件架构模式,通过分解程序的不同功能,达到降低程序设计的复杂度、利于程序员专业分工、简化程序的维护和扩展的目的。MVC是1979年挪威计算机科学家TrygveReenskaug在Xerox(施乐公司)PARC(PaloAltoResearchCenter,帕洛阿

2、尔托研究屮心)工作时,为(历史上第二个面向对象程序设计语言和第一个真正的集成开发环境)SmallTalk提出的。12.1.1概念MVC(Model-View-Controller,模型一视图一控制器)是一种软件架构模式,它把软件系统分为如下三个基本部分(参见图12-3):•模型(Model)—一数据(库)。•视图(View)图形界面(表示)。图12・3MVC模式的关系图MVC模式的目的是实现一种动态的程序设计,简化对程序的后续修改和扩展,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使

3、程序结构更加直观。软件系统通过对自身基本部份分离的同吋,也赋予了各个基本部分应有的功能,专业人员可以通过自身的专反进行分组合作:数据库专家利用“模型”进行数据管理和数据库设计、界而设计人员利用“视图”进行图形界而设计、而程序员则利用“控制器”编写程序应有的功能(实现算法等等)。12.1.2层次模型(Model,数据模型)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作

4、。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。(比较:观察者模式(软件设计模式))视图(View)视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图屮一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。控制器(Controller)控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事

5、件”包括用户的行为和数据模型上的改变。12.1.3实现•SmallTalk1980年MVC最早被应用于XeroxPARC的面向对象、动态类型、自反射的编程语言SmallTalk-80环境中,运行在首个具有GUI的原型计算机Alto(男高音)上。•MacApp1985年Apple将MVC用于其推出的MacOS系统的面向对象的应用程序框架MacApp中,这是MVC首次在商用产品中的实际应用。•MFC1993年2月微软在其随VisualC++1.0推出的MFC2.0中,引入了文档■视图(Document/View)架构

6、,它也是一种对于MVC的早期部分实现。MFC将程序分成视图(View)和文档(Document)两大类,其中的CDocument对应MVC中的数据模型(Model),CView相当于MVC中的视图+控制(View+Controller),再加上应用程序类CWinApp,合成三大项。但是MFC基本上是一个失败的MVC作品。由于MFC对Document/View的定义过于模糊,未将Controller(消息映射)部份取出,因此Controller既可置入View也可置入Document,但不管置入哪一方面,都会与Vi

7、ew或Document绑死而缺乏弹性。•JavaEEStruts1999年12月Sun推出的JavaEE(JavaEnterpriseEdition,Java企业版,原来叫J2EE)和其他的各种框架不一样,它为模型对象(ModelObjects)定义了一个规范。典型例子是由CraigMcClanahan于2000年5月所开发的开源JavaEE轻型Web应用框架ApacheStrutso■视图(View)——在JAVAEE应用程序屮,视图(View)可能由JSPCJavaServerPage,爪哇服务器网页)承担。

8、生成视图的代码则可能是Servlet的一部分,特别是在客户端服务端交互的时候。■控制器(Controller)——JAVAEE应用屮,控制器可能是一个Servleto■模型(Model)模型则是由一个实体Bean来实现。•.NETWindowsForms■视图(View)2002年2月微软所推出的.NET框架中还包含有WinForms(视窗窗体),这个针对视图(View)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。