类图主要是用来展现软件系统中的类、接口以及它们之间的静态结构 。
一、元素
1、类
从上到下分为三部分,分别是类名、属性和操作。
- 类名是必须有的。
- 类如果有属性,则每一个属性必须有一个名字,另外还可以有其他的描述信息,如可见性、数据类型、缺省值等
- 类如果有操作,则每一个操作也都有一个名字,其他可选的信息包括可见性、参数的名、参数类型、参数缺省值和操作的返回值的类型等
2、接口
一组操作的集合,只有操作的声明而没有实现
3、抽象类
不能被实例化的类,一般至少包含一个抽象操作
二、关系
1、 泛化(Generalization)
一种继承关系。
泛化用一个空心三角箭头 和实线 从子类指向父类 。
2、实现(Realization)
类是接口所有特征和行为的实现
实现用一个空心三角箭头 和 虚线 从类指向接口 。
3、关联(Association)
一种拥有的关系,它使一个类知道另一个类的属性和方法 。
关联用一个箭头 表示,在首尾标注对应关系。
4、聚合(Aggregation)
是整体与部分的关系,且部分可以离开整体而单独存在 。
聚合用一个空心菱形和箭头 ,在首尾标注对应关系。
5、组合(Composition)
是整体与部分的关系,但部分不能离开整体而单独存在。如:公司和部门是整体和部分的关系,没有公司就不存在部门。
组合关系是关联关系的一种,是比聚合关系还要强的关系。
组合用一个实心菱形 和箭头 ,在首尾标注对应关系。
6、依赖(Dependency)
是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。
用一个虚线 表示