第9节 面向对象的实施.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 面向对象的实施 教学重点 了解面向对象语言的特点; 掌握如何选择语言 掌握程序设计的风格 了解面向对象测试的特点及测试策略 9.1 从设计到实施 面向对象的实施主要任务是: 把设计阶段产生的结果用代码、脚本和可执行文件等构件来实现 对构件进行单元测试 通过编译和链接把它们集成为一个或多个可执行的程序。 面向对象程序的质量基本上由面向对象设计的质量决定,但是,所采用的程序语言的特点和程序设计风格也将对程序的可靠性、可重用性及可维护性产生深远影响。 目前,软件测试仍然是保证软件可靠性的主要措施,对于面向对象的软件来说,情况也是如此。 面向对象测试的目标,也是用尽可能低的测试成本发现尽可能多的软件错误。 9.2 面向对象语言 选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。 从面向对象观点来看,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的,因为这会带来下述几个重要优点: (1)一致的表示方法。在软件开发的全过程中始终保持表示方法稳定不变,既有利于在软件开发过程中使用统一的概念,又有利于维护人员理解软件的各种配置成分。 (2)可重用性。在软件开发过程中始终显式地表示问题域语义,意义十分深远。这样做既可能重用面向对象分析结果,也可能重用相应的面向对象设计和面向对象程序设计结果。 (3)可维护性。维护人员面对的往往主要是源程序,因此,程序显式地表达问题域语义,对维护人员理解待维护的软件有很大帮助。 因此,在选择编程语言时,应该考虑的首要因素是哪个语言能最恰当地表达问题域语义。一般说来,应该尽量选用面向对象语言来实现面向对象分析、设计的结果。 以ATM系统为例,说明在程序内部表达问题域语义对维护工作的意义。 假设在维护该系统时没有合适的文档资料可供参阅,于是维护人员人工浏览程序或使用软件工具扫描程序,记下或打印出程序显式陈述的问题域语义,维护人员看到“ATM”、“账户”、“现金兑换卡”等,这对维护人员理解所要维护的软件将有很大帮助。 9.2.1 面向对象语言的特点 ·支持类与对象概念的机制。 ·实现聚集结构的机制。 ·实现泛化结构的机制。 ·实现属性和服务的机制。 ·类型检查机制。 ·类库。 ·效率。 ·持久保存对象的机制。 ·参数化类的机制。 ·开发环境。 1. 支持类与对象概念的机制 所有面向对象语言都允许用户动态创建对象,并且可以用指针引用动态创建的对象。允许动态创建对象,系统必须处理内存管理问题,及时释放不再需要的对象所占用的内存。 有两种管理内存的方法: 1) 由语言的运行机制自动管理内存,即提供自动回收“垃圾”的机制; 垃圾收集算法 2)由程序员编写释放内存的代码。 定义析构函数 2. 实现整体-部分(即聚集)结构的机制 一般说来,有两种实现方法,分别使用指针和独立的关联对象实现整体-部分结构。大多数现有的面向对象语言并不显式支持独立的关联对象,在这种情况下,使用指针是最容易的实现方法,通过增加内部指针可以方便地实现关联。 3. 实现一般-特殊(即泛化)结构的机制 既包括实现继承的机制也包括解决名字冲突的机制。 所谓解决名字冲突,指的是处理在多个基类中可能出现的重名问题,这个问题仅在支持多重继承的语言中才会遇到。某些语言拒绝接受有名字冲突的程序,另一些语言提供了解决冲突的协议。不论使用何种语言,程序员都应该尽力避免出现名字冲突。 4. 实现属性和服务的机制 对于实现属性的机制应该着重考虑以下几个方面: 支持实例连接的机制; 属性的可见性控制; 对属性值的约束。 对于服务来说,主要应该考虑下列因素: 支持消息连接(即表达对象交互关系)的机制; 控制服务可见性的机制; 动态联编。 所谓动态联编,是指应用系统在运行过程中,当需要执行一个特定服务的时候,选择(或联编)实现该服务的适当算法的能力。 5. 类型检查 按编译时进行类型检查的严格程度可将程序设计语言分为: 弱类型的 语言仅要求每个变量或属性隶属于一个对象; 通常使用弱类型解释型语言快速开发原型。 强类型的 语法规定每个变量或属性必须准确地属于某个 特定的类。

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档