第14章文档与视图.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章文档与视图.doc

PAGE  PAGE 57 第14章 文档与视图 MFC提供了将应用程序的数据与显示分开的文档-视图结构,它为应用程序提供了统一的框架,参见图14-1。对应的MFC应用程序的有关类及其MFC基类,可以参见2.2.5节的图2-9和图2-10。MFC的文档-视图结构是MVC(Model-View-Controller,模型—视图—控制器)模式的一种部分实现。 14.1 MVC 图14-1 SDI应用程序中的对象 MVC通过分解程序的不同功能,达到降低程序设计的复杂度、利于程序员专业分工、简化程序的维护和扩展的目的。MVC是1979年挪威计算机科学家Trygve Reenskaug在Xerox(施乐公司)PARC(Palo Alto Research Center,帕洛阿尔托研究中心)工作时,为(历史上第二个面向对象程序设计语言和第一个真正的集成开发环境)SmallTalk提出的。 14.1.1 概念 MVC是一种软件架构模式,它把软件系统分为如下三个基本部分(参见图14-2): 模型(Model)—— 数据(库)。 视图(View)—— 图形界面(显示/表示)。 控制器(Controller)—— 程序功能(算法)。 图14-2 MVC模式的关系图 MVC模式的目的是实现一种动态的程序设计,简化对程序的后续修改和扩展,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。 软件系统通过对自身基本部份分离的同时,也赋予了各个基本部分应有的功能,专业人员可以通过自身的专长进行分组合作:数据库专家利用“模型”进行数据管理和数据库设计、界面设计人员利用“视图”进行图形界面设计、而程序员则利用“控制器”编写程序应有的功能(实现算法等等)。 14.1.2 层次 模型(Model,数据模型)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。 视图(View)层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型,因此应该事先在被它监视的数据那里注册。 控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。 14.1.3 实现 SmallTalk 1980年MVC最早被应用于Xerox PARC的面向对象、动态类型、自反射的编程语言SmallTalk-80环境中,运行在首个具有GUI的原型计算机Alto(男高音)上。 MacApp 1985年Apple将MVC用于其推出的Mac OS系统的面向对象的应用程序框架MacApp中,这是MVC首次在商用产品中的实际应用。 MFC 1993年2月微软在其随Visual C++ 1.0推出的MFC 2.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绑死而缺乏弹性。 Java EE——Struts 1999年12月Sun推出的Java EE(Java Enterprise Edition,Java企业版,原来叫J2EE)和其他的各种框架不一样,它为模型对象(Model Objects)定义了一个规范。典型例子是由Craig McClanahan于2000年5月所开发的开源Java EE轻型Web应用框架Apache Struts。 视图(View) —— 在Java EE应用程序中,视图(View)可能由JSP(Java Server Page,爪哇服务器网页)承担。生成视图的代码则可能是Servlet的一部分,特别是在客户端服务端交互的时候。 控制器(Controller) —— Java EE应用中,控制器可能是一个Servle

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档