图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形。由这些基本的图形进行组合构成了类图的基本符号。这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程度。越向右耦合度越高。
另外一点是在看类图的时候要注意。类图的思想其实也还没有脱离面向对象的思想,以某个类为中心,有些线是射入的而有些线是射出的。射入的线表示的是这个类被哪些类所调用而射出的线则表示该类调用了 哪些类,包括泛化,关联,依赖,聚合和组合四种关系。
类图的关系
关系名 | 概述 | 标识符 |
---|---|---|
泛化(Generalization) | 父类与子类之间的继承关系 | 实线+空心三角 |
实现(Realization) | 类实现接口的某种体现形式 | 虚线+空心三角 |
关联(Association) | 基于对象去实现各种类之间的引用关系,从而促使某些熟悉其他类的内部属性和方法。 包括单向关联与双向关联两种 | 实线+箭头 |
依赖(Dependency) | 当两个类显示为关联关系时,其中一个类描述的相关概念的变化将会引起另一个的概念发生变化 | 虚线+箭头 |
聚合(Aggregation) | 体现全局与局部之间有别于同类事物或平常情况的某种关联 | 实线+空心菱形 |
组合(Composition) | 全局与局部之间的关联,但是局部不能离开全局而独立存在 | 实线+实心菱形 |
类(Class)
使用三层矩形框表示。 第一层显示类的名称,如果是抽象类,则就用斜体显示。 第二层是字段和属性。 第三层是类的方法。 注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。
接口(Interface)
使用两层矩形框表示,与类图的区别主要是顶端有<>显示 。 第一行是接口名称。 第二行是接口方法。
泛化(Generalization)
实现(Realization)
关联(Association)
表示类与类之间的特定对应关系,如在类A中定义类B类型的属性。按照类之间的数量对比,关联可以分为以下三种:
- 一对一关联
- 一对多关联
- 多对多关联
注意:关联还要以分为单向关联和双向关联。
依赖(Dependency)
表示类与类之间的调用关系,比如类A访问类B的属性或者方法,或者类A负责实例化类B,那么可以说类A依赖类B。和关联关系不同,无须在类A中定义类B类型的属性。
聚合(Aggregation)
体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如: 公司和员工
组合(Composition)
部分和整体的关系,并且生命周期是相同的。例如:人与手