类图(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).依赖关系和关联关系

  1. 依赖关系:一般实现在方法上,不调用方法不需要使用,虚无缥缈,虚线
  2. 关联关系:是属性依赖,很关键,实打实的

b).聚合关系和组合关系,空心和实心菱形

  1. 菱形的方向,数量少的是菱形的方向
  2. 聚合是一个盘子可以称很多东西,但是他们是相同的,只是数量不同,不同的生命周期
  3. 组合的生命周期是相同的

c).继承和实现

  1. 继承:类和类之间的关系,很实
  2. 实现:限制的不明显,很虚
  3. 只有知道对方信息,才可以指向