文章目录
一:面向对象实现概述
(1)主要任务
- 把面向对象设计结果翻译成用某种程序语言书写的面向对象程序
- 测试并调试面向对象的程序
(2)面向对象程序质量的影响因素
- 面向对象设计的质量
- 采用的程序语言的特点
- 程序设计风格
(3)保证软件可靠性的方法
保证软件可靠性的主要措施是软件测试。面向对象测试的目标是用尽可能低的测试成本发现尽可能多的软件错误
二:程序设计语言
(1)面向对象语言的优点
A:面向对象设计结果的表达方式
- 面向对象语言:编译程序可以自动把面向对象概念映射到目标程序中
- 非面向对象语言:必须由程序员自己把面向对象概念映射到目标程序中
B:优点
- 一致的表示方法:面向对象开发基于不随时间变化的、一致的表示方法。既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分
- 可重用性:既可重用面向对象分析结果,也可重用相应的面向对象设计和面向对象程序设计结果
- 可维护性:程序显式地表达问题域语义,对维护人员理解待维护的软件有很大帮助。在选择编程语言时,应该考虑的首要因素是哪个语言能最恰当地表达问题域语义
(2)面向对象语言的技术特点
在选择面向对象语言时应该着重考虑以下几种技术特点
A:支持类与对象概念的机制
①:内容
面向对象语言允许用户动态创建对象,并且可以用指针引用动态创建的对象。需要及时释放不再需要的对象所占用的内存
②:管理内存的方法
- 由语言的运行机制自动管理内存,即提供自动回收“垃圾”机制
- 由程序员编写释放内存的代码
B:实现聚集结构的机制
- 使用指针
- 使用独立的关联对象
C:实现泛化结构的机制
- 实现继承的机制
- 解决名字冲突的机制,即处理在多个基类中可能出现的重名问题
D:实现属性和服务的机制
实现属性的机制:
- 支持实例连接的机制
- 属性的可见性控制
- 对属性值的约束
实现服务的机制:
- 支持消息连接(表达对象交互关系)的机制
- 控制服务可见性的机制
- 动态联编(在发送消息前,无须知道接受消息的对象属于哪个类)
E:类型检查
①:分类
- 弱类型:语言仅要求每个变量或属性隶属于一个对象
- 强类型:语法规定每个变量或属性必须准确地属于某个特定的类
②:强类型语言的优点
- 有利于在编译时发现程序错误,提高软件的可靠性
- 增加了优化的可能性,提高软件的运行效率
③:适用性
使用强类型编译型语言开发软件产品,使用弱类型解释型语言快速开发原型
F:类库
存在类库,许多软构件就不必由程序员从头编写了,为实现软件重用带来很大方便。主要分为以下几类
- 包含实现通用数据结构的类,即包容类
- 实现各种关联的类
- 独立于具体设备的接口类
- 用于实现窗口系统的用户界面类
G:效率
提高效率的方法有
- 使用拥有完整类库的面向对象语言
- 优化查找继承树查找过程,从而实现高效率查找
H:持久保存对象
①:原因
- 为实现在不同程序之间传递数据,需要保存数据
- 为恢复被中断了的程序的运行,首先需要保存数据
②:方法
- 在类库中增加对象存储管理功能
- 使程序设计语言语法与对象存储管理语法无缝集成
J:参数化类
①:定义
参数化类是使用一个或多个类型去参数化一个类的机制,如果程序语言提供一种能抽象出这类共性的机制,则对减少冗余和提高可重用性是大有好处的
②:方法
- 定义一个参数化的类模板
- 把数据类型作为参数传递进来
K:开发环境
- 编辑程序
- 编译程序或解释程序(最重要)
- 浏览工具
- 调试器
(3)选择面向对象语言的标准
- 将来能否占主导地位
- 可重用性
- 类库和开发环境
- 其他因素