第9章 面向对象设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第9章面向对象设计

提取了用户需求,建立了问题域模型后,系统分析的任务基本完成。下一步则是将分析的成果用于设计当中。就是根据成本与要求,规划出系统应该如何实现问题。本章内容主要包括:面向对象设计的准则,启发式规则,面向对象程序设计,软件重用技术等。

9.1基础知识

面向对对象的设计是把分析阶段得到 的需求转变成符合成本和质量要求的,抽象的系统实现方案的过程。从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。或者说,面向对象设计就是用面向对象观点建立解域模型的过程。

9.11设计的准则

在面向对象的应用中,类实例是系统的主要组成部分,设计时应遵循如下准则:

⑴类的公共接口的单独成员应该是类的操作符。

⑵类A的实例不应直接发送信息给类B的成员。

⑶只有当类实例的用户可用,操作符才是公共的。

⑷属于类的每个操作符只能赋予修改成访问类中某个的权限,两者只能择上。

⑸类必须保持独立性,尽可能少地依赖其他类。

⑹两个类之间的相互作用应是显式的。

⑺采用子类继承超类的公共接口,开发子类成为超类的专用。

⑻目标概念的抽象模型应是继承结构中的根类。

 前四种着重考虑接口的形式及使用,后四种着重类之间的关系。

9.12启发式规则 

启发式的规则,是人们使用面向对象方法学的过程中所积累的经验,往往能帮助软件开发人员提高面向对象的质量。在面向对象的设计中,应考虑如下方面:类,服务和协议的简化;设计变动尽可能小,设计结果的可理解性。

9.13面向对象程序设计

OOPL的特点:用对象描述问题域中的事物引入类的概念,包含具有相同属性的和服务的对象,并通过继续机制保证子类具有父类的全部属性和服务;很好地描述客观世界复杂的事物由简单的事物所构成的这种组成关系;采用把对象的服务和属性结合为一个整体的封装机制,对外屏蔽了对象的内部细节;通过消息表示对象之间的动态联系。

9.14软件重用技术

重用也称为再用,或称为复用,是指同一事物不作修改或稍加改动就可以多次重复使用,对建立软件目标系统而言,就是利用某些先前开发的,现在对建立新系统有用的信息来生产

新系统。

软件复用的范围基本上可归纳为数据复用,模块复用,结构复用,设计复用和规格说明复用五个层次。

软件复用技术目前有三大类:合成技术,生成技术和面向对象的软件重用技术。

9.2单元练习

9.21填空

1.现实世界中,各对象之间相互触发,一个触发行为就是一个___。对事物的响应取决于___的状态,响应包括___的改变或形成一个新的___。

2.一般说来,对面向对象软件的测试可分为___,___,___和___。

四个层次进行。

3.受限关联由两个类和一个___组成。

4.在面向对象的系统设计中,常见的系统种类有___,____,___,___,

___和___。大多数问题只是上述结构的变种,许多问题是多种结构形式的组合。

5.同一个类中的共享是指同一个类中的对象有着相同的___和相同的___。

6.在类的层次结构中,通常上层类称为____类或____类,下层类称为____类。

7.面向对象设计的准则是___,___,___,____和____。

8.面向对象开发方法有:____方法,____方法,____方法和____方法。

9.抽象是指强调实体的___,___,忽略一些无关紧要的属性。类实现了对象的___和___的抽象,它是对象的共性的抽象。

10.面向对象设计可分为___设计和____设计。

11.在面向对象设计中存在___,___,___三种内聚。

12.对于纯面向对象的语言,在系统中的每个“事物”都是____。在这些语言中没有“____过程”,且常常是交互的。

.9.22选择题

1. 面向对象程序设计不同于其它语言的最主要特点是( )

A.模块性 B.抽象性

C.继承性 D.共享性

2.在面向对象方法中,信息隐蔽是通过对象的( )来实现的。

A.分类性 B。继承性 C.封装性 D。共享性

3.()应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。

A.论域分析 B。高层设计

C.实例的建立 D。类的开发

4.在面向对象的设计中,我们应遵循的设计准则除了模块化,抽象,低耦合,高内聚

以外,还有()。

A.隐藏复杂性 B.信息隐蔽

C.经常类的复用 D.类的开发

5,在面向对象的程序设计中,以下能够正确指出为提高重用性应遵守的主要准则标号的

序号是( )。

1 提高方法的内聚 ② 减少方法规模

③ 保持方法的一致性 ④ 把策略与实现分开

⑤ 全面覆盖 ⑥ 尽量不使用全局信息

⑦ 避免使用多分支语句 ⑧ 精心确定公有方法 

A. ③④⑤⑥⑦⑧ B. ①②③④⑤⑥

C. ①②③⑥⑦⑧ D. ①②④⑥⑦⑧

 6 以下说法错误的是()。

A.采用面向对象方法开发软件的基本目的话主要优点是通过重用提高软件的生产率

B.在面向对象程序中,对象是属性(状态)和方法(操作)的封装体

C.在面向对象程序中,对象彼此间通过继承和多态性启动相应的操作

D.继承和多态机制是面向对象程序中实现重用的主要手段

 7 以下说法错误的是( )。

A.面向对象分析与面向对象设计的定义没有明显区别

B.在实际的软件开发过程中面向对象分析与面向对象设计的界限是模糊的

C.面向对象分析和面向对象设计活动是一个反复迭代的过程

D.从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程

 8 在面向对象程序设计中,以下能够正确指出为了提高可扩充性应遵守的主要尊准则是( ).

①封装实现策略②不要用一个方法遍历多条关联链

③避免使用多分支语句④精心确定公有方法

⑤不要预先确定限制条件⑥先测试后优化

A ③④⑤⑥

B ②③④⑤

C ①②③④

D ①②③⑤

9. 在面向对象程序设计中,以下能够正确指出为提高健壮性应遵守的主要准则是()。

①预防用户的错误操作②检查参数的合法性

③ 不要预先覆盖限制条件④先测试后优化

⑤全面覆盖⑥尽量不使用全局信息

A ③④⑤⑥

B ②③④⑤

C ①②③④

D ①②③⑤

10.面向对象的实现主要包括两项工作,以下能正确指出这两项的是

相关文档
最新文档