UML类图基本画法
类 简要画法
- 类有三个单元格的矩形(看上图中的
动物类
) - 第一格:类名称(如果是抽象类,名称标注为斜体字)
- 第二格:类属性名称
- 第三格:类操作名称
类属性或者操作的访问修改符的标注:
- public用加号标注
- private用减号标注
- protected用#号标注
接口 简要画法
- 接口有两个单元格的矩形(看上图中的
飞翔
接口) - 第一格:接口名称(名称前面要加入接口标注<>)
- 第二格:操作名称
属性或者操作的访问修改符的标注:同类
继承关系 简要画法
- 继承关系简单介绍:类似
is-a
的关系,如:猫是一个动物 - 鸟类+实线+空心三角形+动物类(即
鸟类
继承动物类
,参考上图中的标注①) - 箭头方向说明:箭头方向由子类指向父类
接口实现关系 简要画法
- 简单介绍:接口表达的是一种
has-a
的关系,即拥有这类接口的操作,如:猫可以实现爬树的接口 - 大雁类+虚线+空心三角形+
飞翔
接口(即大雁类
实现了接口飞翔
,参考上图中的标注②) - 箭头方向说明:箭头方向由类指向接口
依赖关系 简要画法
- 简单介绍:依赖关系表达的是一种
use-a
的关系,即一个类临时
引用另外一个类的方法实现功能 - 动物类+虚线+箭头+氧气类和水类(即
动物类
依赖氧气类
和水类
,参考上图中的标注③) - 箭头方向说明:箭头由类指向被依赖类
关联关系 简要画法
- 简单介绍:关联关系表达的是一种
强依赖
关系,需要长期知道对方,使用对方,如企鹅需要总是知道气候的变化 - 企鹅类+实线+箭头+气候类(即
企鹅类
关联气候类
,参考上图中的标注④) - 箭头方向说明:箭头由类指向被关联类
聚合关系 简要画法
- 简单介绍:聚合关系表达的是一种
弱拥有
关系,如电脑与很多外设的关系 - 雁群类+空心菱形+实线+箭头+大雁类(即
雁群类
是由大雁类
聚合成的,参考上图中的标注⑤) - 箭头方向说明:箭头由整体指向部分
合成(或说组合)关系 简要画法
- 简单介绍:合成关系表达的是一种
强拥有
关系,并且生命周期相同,不能单独存在 - 鸟类+实心菱形+实线+箭头+翅膀类(即
鸟类
是由翅膀类
及其它类合成的,参考上图中的标注⑥) - 箭头方向说明:箭头由整体指向部分
关系
常见的关系有:继承(Inheritance),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency),实现关系(Realization/Implementation)。
其中,聚合关系(Aggregation),复合关系(Composition)属于关联关系(Association)。
类图中的关系表示一般关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。
一般化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。
表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。
关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。
表示方法:用 实线+箭头, 箭头指向被使用的类。
聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。
表示方法:空心菱形+实线+箭头,箭头指向个体。
合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。
表示方法:实心菱形+实线+箭头,
依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
表示方法:虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量。