云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 软件工程导论 第9章 面向对象方法学引论

软件工程导论 第9章 面向对象方法学引论

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 16:57:26

窗口 * 文本框 * 列表框 * 按 钮 * 菜 单 3.泛化

图9.11 组合聚集示例 UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。

在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。

注意,泛化针对类型而不针对实例,一个类可以继承另一个类,但一个对象不能继承另一个对象。实际上,泛化关系指出在类与类之间存在“一般一特殊”关系。泛化可进一步划分成普通泛化和受限泛化。 (1)普通泛化

普通泛化与9.2.2节中讲过的继承基本相同,对普通泛化的概念此处不再赘述。

需要特别说明的是,没有具体对象的类称为抽象类。抽象类通常作为父类,用于描述其他类(子类)的公共属性和行为。图示抽象类时,在类名下方附加一个标记值{abstract},如图9.12所示。图下方的两个折角矩形是模型元素“笔记”的符号,其中的文字是注释,分别说明两个子类的操作drive的功能。

交通工具 {abstract} drive(){abstract} 汽车 drive() 船 drive() 转动旋螺旋桨 驱动车轮转动

图 9.12 抽象类示例

抽象类通常都具有抽象操作。抽象操作仅用来指定该类的所有子类应具有哪些行为。抽象操作的图示方法与抽象类相似,在操作标记后面跟随一个性质串{abstract)。

与抽象类相反的类是具体类,具体类有自己的对象,并且该类的操作都有具体的实现方法。

图9.13给出一个比较复杂的类图示例,这个例子综合应用了前面讲过的许多概念和图示符号。图9.13表明,一幅工程蓝图由许多图形组成,图形可以是直线、圆、多边形或组合图,而多边形由直线组成,组合图由各种线型混合而成。当客户要求画一幅蓝图时,系统便通过蓝图与图形之间的关联(聚集)关系,由图形来完成画图工作,但是图形是抽象类,因此当涉及到某种具体图形(如,直线、圆等)时,便使用其相应子类中具体实现的draw功能完成绘图工作。

图形 {abstract} 由?组成 蓝图 位置:pos 由?组成 draw(){abstract} 组合图 多边形 线 圆 draw() draw() draw() draw() 图 9.13 复杂类图示例

(2)受限泛化

可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化。预定义的约束有4种:多重、不相交、完全和不完全。这些约束都是语义约束。 多重继承指的是,一个子类可以同时多次继承同一个上层基类,例如图9.14中的水陆两用类继承了两次交通工具类。

与多重继承相反的是不相交继承,即一个子类不能多次继承同一个基类(这样的基类相当于c++语言中的虚基类)。如果图中没有指定{多重)约束,则是不相交继承,一般的继承都是不相交继承。

完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定{完全}约束。

不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护,这为日后系统的扩充和维护带来很大方便。不完全继承是一般情况下默认的继承关系。

动力装置 交通工具 船 (多重) 汽车 船 水陆两用 图 9.14 多重继承示例 4.依赖和细化

(1)依赖关系

依赖关系描述两个模型元素(类、用例等)之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。例如,一个类使用另一个类的对象作为操作的参数,一个类用另一个类的对象作为它的数据成员,一个类向另一个类发消息等,这样的两个类之间都存在依赖关系。

在UML的类图中,用带箭头的虚线连接有依赖关系的两个类,箭头指向独立的类。在虚线上可以带一个版类标签,具体说明依赖的种类,例如,图9.15表示一个友元依赖关系,该关系使得B类的操作可以使用A类中私有的或保护的成员。

《友元》 类 B 类 A

图 9.15 友元依赖关系

(2)细化关系

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

窗口 * 文本框 * 列表框 * 按 钮 * 菜 单 3.泛化 图9.11 组合聚集示例 UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。 在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。 注意,泛化针对类型而不针对实例,一个类可以继承另一个类,但一个对象不能继承另一个对象。实际上,泛化关系指出在类与类之间存在“一般一特殊”关系。泛化可进一步划分成普通泛化和受限泛化。 (1)普通泛化 普通泛化与9.2.2节中讲过的继承基本相同,对普通泛化的概念此处不再赘述。 需要特别说明的是,没有具体对象的类称为抽象类

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com