文档库 最新最全的文档下载
当前位置:文档库 › UML类图和六种类关系的学习

UML类图和六种类关系的学习

UML类图和六种类关系的学习
UML类图和六种类关系的学习

https://www.wendangku.net/doc/3d17150624.html,/javase/tutorial/java/concepts/对于面向对象的基本定义

类图

extends继承,指的是一个类(子类)继承另外的一个类(超类)的同一功能,并增加它自己的新功能。

类名BankAccount和withdrawal操作使用斜体。这表示,BankAccount 类是一个抽象类,而withdrawal方法是抽象abstract的操作。

关联是两个类间的联接双向&单向:

双向(标准)的关联

在图中存在两种方法表示软件包,你个人的判断:哪种更便于阅读你画的类图。

Implements实现接口

如图10 所示,一条带有闭合的单向箭头的点线意味着实现(或实施);正如我们在图 4 中所见到的,一条带有闭合单向箭头的实线表示继承。

聚合

聚合是一种特别类型的关联,用于描述“总体到局部”的关系。在基本的聚合关系中,部分类的生命周期独立于整体类的生命周期。

举例来说,我们可以想象,车是一个整体实体,而车轮轮胎是整辆车的一部分。轮胎可以在安置到车时的前几个星期被制造,并放置于仓库中。在这个实例中,Wheel类实例清楚地独立地Car类实例而存在。

然而,有些情况下,部分类的生命周期并不独立于整体类的生命周期-- 这称为合成聚合。举例来说,考虑公司与部门的关系。公司和部门都建模成类,在公司存在之前,部门不能存在。这里Department 类的实例依赖于Company类的实例而存在。

反射关联

当一个系统结构建模时,显示例子类实例有时候是有用的。

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。

其中依赖(Dependency)的关系最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。

换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的整体与部分关系的关联,而组合是表明整体与部分之间有相同生命周期关系的聚合。

依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。一般来说,不应该存在双向依赖。

参考:https://www.wendangku.net/doc/3d17150624.html,/duanxz/archive/2012/06/13/2547801.html

依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。【单向】

?泛化(Generalization):通常所说的继承(特殊个体is kind of 一般个体)关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向一般个体。

?实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,

B realize A。这个关系最常用于接口。uml中用空心箭头和虚线表示Realize关系,箭头指向定

义约定的元素。

?关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。

?聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体has a 部分)的关系。

uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。

?组合/合成(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不

一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。

总结

实线虚

线

/

线

>

【父、

VS

部】

相关文档