乐趣区

设计模式之UML类图

类图 (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. 只有知道对方信息,才可以指向
退出移动版