Chap09面向对象方法学引论.pptVIP

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 面向对象方法学引论 传统的生命周期方法学 传统方法学的本质 是在具体的软件开发工作开始之前,通过需求分析预先定义软件需求,然后一个阶段接着一个阶段有条不紊地开发用户所要求的软件,实现预先定义的软件需求。 生命周期方法学是一个巨大的进步,对实现软件开发工程化曾经起了重要的促进作用,部分地缓解了软件危机。 传统的生命周期方法学 实践表明,传统的生命周期方法学并不能完全消除软件危机。 对某些类型的软件开发,这种方法学比较适用,对另一些类型的软件则可能完全不适用。 近年来软件工程的新途径——快速原型法和面向对象方法学——已经进入实用阶段,应用得越来越广泛了。 9.1.1 面向对象方法学的要点 面向对象方法学的出发点和基本原则 尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程; 也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 问题空间 客观世界的问题都是由客观世界中的实体及实体间相互间的关系构成的。 我们把客观世界中的一个实体抽象为问题域中的对象(Object)。 从动态观点看,对对象施加的操作就是该对象的行为。 通常,客观世界中的实体既具有静态的属性又具有动态的行为。 解空间 计算机中的实体称为解空间的对象,显然,解空间的对象取决于所使用的程序设计语言。 例如,汇编语言提供的对象是存储单元;面向过程的高级语言提供的对象,是各种预定义类型的变量、数组、记录和文件等。 这些解空间对象实质上仅仅是描述实体属性的数据,必须在程序中从外部对它施加操作,才能模拟它的行为。 传统方法中问题空间和解空间的映射关系 在问题空间中(即客观世界中的实体)既具有静态的属性又具有动态的行为。 在解空间中,传统方法把数据(静态的属性)和处理(动态的行为)人为地分离成两个独立的部分,这使得描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上不一致。 增加了软件开发的难度。 面向对象方法中问题空间和解空间的映射关系 面向对象方法尽可能模拟客观世界,它把数据以及在这些数据上的操作所构成的统一体称为“对象”。 对象是进行处理的主体。 必须发消息请求对象执行它的某些操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 这样,软件开发者可以根据问题空间的结构,定义或选取解空间对象,然后用一系列离散的解空间对象的集合组成软件系统。 面向对象方法中问题空间和解空间的映射关系 这些解空间对象彼此间通过发送消息而相互作用,从而得出问题的解。 也就是说,面向对象是一种新的思维方法,它不是把程序看作是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。 在许多系统中解空间对象都可以直接模拟问题空间的对象,解空间与问题空间的结构十分一致,因此,这样的程序易于理解和维护。 面向对象方法的四个要点 认为客观世界是由各种对象组成的,任何事物都是对象;复杂的对象可以由比较简单的对象以某种方式组合而成。 因此,面向对象的软件系统是由各种对象组成的; 任何元素都是对象,复杂的对象可以由比较简单的对象某种方式组合而成。 面向对象方法的四个要点 把所有对象都划分成各种对象类(简称为类Class),每个对象类都定义了一组数据和一组方法。 数据用于表示对象的静态属性,是对象的状态信息。 每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。 类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。 面向对象方法的四个要点 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。 派生类具有基类的特性(包括数据和方法),但是派生类又有某些基类没有的特性。 这种现象称为继承(Inheritance)。 面向对象方法的四个要点 对象彼此之间仅能通过传递消息互相联系。 对象是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 也就是说,该对象的私有信息,都被封装在该对象类的定义中,这就是“封装性”。 面向对象方法学方程 OO = Objects + Classes + Inheritance + Communication with messages 也就是说,面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。 9.1.2 面向对象方法的主要优点 与人类习惯的思维方法一致 面向过程的设计方法: 这种方法以算法为核心,把数据和过程作为相互独立的部分。 面向对象的设计方法:

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档