类图 (Class diagram) 主要用于描述系统的结构化设计。类图也是最常用的 UML 图,用类图可以显示出类、接口以及它们之间的静态结构和关系。
0x01. 类图中的元素
1. 类 Class / 接口 Interface
- 第一格:表示类的名字,抽象类用斜体表示,接口在前面加 <interface>
- 第二格:表示类的属性,前面符号表示作用于,冒号后面表示类的类型
符号 | 解释 |
---|---|
+ | public |
– | private |
# | protected |
~ | default |
下面有横线 | 表示 static 静态属性 |
- 第三格:表示类的行为,同上
符号 | 解释 |
---|---|
+-#~ | 同上 |
斜体 | 抽象方法 |
下面有横线 | 表示 static 静态方法 |
:String | : 后表示返回值,返回 String 字符串类型 |
无: | 表示 void 无返回 |
2.UML 类图中各个类的关系
a). 依赖关系
- 一个类需要借助另一个类来实现功能是依赖关系,使用虚线和箭头,箭头指向被依赖的对象
b). 泛化继承关系
- 空心箭头实线,箭头方向是子类指向父类来表示,只有知道对方信息才能指向对方
c). 组合关系
- 实心菱形和大于箭头,实线。组合关系可用在两侧写上数字,表示一只鸟两个翅膀。组合关系对象同样生命周期
d). 关联关系
- 表示一个类和另外一个类是有关联的,一般有一个属性是另一个类,用实线和大于箭头,指向被关联对象
e). 聚合关系
- 空心菱形和大于箭头。整体和局部的关系,两者拥有独立的生命周期,是 has- a 的关系。空心菱形是可以放东西的盘子,可以用来装东西。东西放在盘子里就可以装进去
f). 实现关系
- 空心三角和虚线,指向接口
g). 接口表示
- 棒棒糖表示法
3. 相似关系比较
a). 依赖关系和关联关系
- 依赖关系:一般实现在方法上,不调用方法不需要使用,虚无缥缈,虚线
- 关联关系:是属性依赖,很关键,实打实的
b). 聚合关系和组合关系,空心和实心菱形
- 菱形的方向,数量少的是菱形的方向
- 聚合是一个盘子可以称很多东西,但是他们是相同的,只是数量不同,不同的生命周期
- 组合的生命周期是相同的
c). 继承和实现
- 继承:类和类之间的关系,很实
- 实现:限制的不明显,很虚
- 只有知道对方信息,才可以指向