个人记录-UML

0.)
继承、实现是三角型箭头,其他都为箭头
组合、聚合都有一个菱形端,且都为实线,其他都无菱形端
组合的菱形为实心,聚合的菱形为空心
继承是实线,实现是虚线
关联是实线 依赖是虚线

1.)类成员属性与类函数访问修饰在UML是符号表示方法如下:

'+' :表示访问修饰符-public
'#' :表示访问修饰符-protected
'-' :表示访问修饰符-private

2.)类的成员属性表示方式

类的成员属性表示方式.png

3.)类函数表示方式

类函数表示方式.png

4.)类与类之间关系表示方式

4.1)单向关联

单向关联.png

我们可以看到,在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量来实现。

4.2)双向关联

双向关联.png

从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线来表示。上图中在Customer类中维护一个Product[]数组表示一个顾客购买了哪些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被那个顾客所购买。

4.4)自关联

自关联.png

自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。

4.5.)聚合关系(Aggregation)

表示的是整体和部分的关系,且 整体与局部可以分开,表示 has-a 的关系。在UML中,聚合关系用带空心菱形的直线表示:

聚合关系.png

4.6)组合关系(Composition)

组合关系与聚合关系间的最大不同在于:这里的“部分”脱离了“整体”便不复存在,表示 contains-a 的关系。
显然,嘴是头的一部分且不能脱离了头而单独存在。
在UML中,组合关系用带实心菱形的直线表示。

组合关系.png

4.7.)依赖关系

依赖关系.png

从上图中我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。在UML类图中,依赖关系用一条带有箭头的虚线表示。

4.8.)继承关系

泛化关系在Java中也叫作继承关系,在UML中我们用带空心三角形的直线来表示,继承关系对应的是extend关键字,在UML类图中用带空心三角形的直线表示,如下图所示中,Student类与Teacher类继承了Person类。

继承关系.png

4.9.)接口实现关系

这种关系对应implements关键字,比如下图中,Car类与Ship类都实现了Vehicle接口。

接口实现关系.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容