前言
UML 类图,用于表示项目框架中类的说明,以及类与类之间的关联,在项目设计中,通过 UML 可以快速了解整个项目的框架结构。
UML 类图
在 UML 类图中,类使用包含类名、属性和方法并且带有分割线的矩形来表示,比如:
其中,最上面一栏表示类的名称,中间一栏表示类的属性,下面一栏表示类的方法。那么,接下来分别介绍这些写法的含义。
类的属性
先来看一个类图:
详细说明:上述是表示一个 People类的类图,其中,它包含几个属性:name、age、gender、address。
属性的完整表示方式:
可见性 名称:类型 [= 缺省值]
属性前面的符号含义:
- - 表示私有声明,private
- + 表示公有声明,public
- # 表示保护类型,protected,friendly 也归入这一类
而属性名冒号后面就表示该属性的类型,然后可以再加一个默认值。
类的方法
先来看个类图:
方法的完整表示方式:
可见性 名称(参数列表)[:返回类型]
中括号的类型是可选的。
方法前面的符号含义和属性的一样:
- - 表示私有声明,private
- + 表示公有声明,public
- # 表示保护类型,protected
类与类之间的关系
关联关系
单向关联
单向关联由一个带箭头的直线表示。上述类图中,People中的属性 address 是一个 Address 类型。
双向关联
所谓双向关联,就是两个类相互依赖,用一根直线表示,不带箭头。
自关联
自关联就是类中包含自己的类类型成员变量,用一个带箭头指向自身的直线表示。
组合关系
所谓组合关系就是,强调一个“整体” 包含“部分”,并且“部分”是不能脱离“整体”独立存在。
头是身体的一部分并且不能脱离了身体而单独存在。组合关系用一个带实心菱形和箭头的直线表示。
聚合关系
聚合关系和组合关系有点像,也是强调“整体”包含“部分”,但是聚合关系中“部分”可以脱离“整理”而单独存在,比如汽车包含发动机,而发动机可以脱离汽车而单独存在。
聚合关系用一个带空心菱形和箭头的直线表示。
依赖关系
司机要开车需要一辆车才行,所以这里司机依赖于汽车。依赖关系用一条带有箭头的细线表示。
继承关系
继承关系就很好理解了, 这里的两个子类继承于 Shape 基类,继承关系用实线和空心箭头表示。
接口实现关系
继承一个接口类,子类实现其中的全部接口。接口实现关系用带虚线的空心箭头表示。
以上就是 UML 类图中最常见的几种表示方式。