类图:显示了模型的静态结构。
类图的组成:
类、关系、协作、关系
(1)类:(类名、属性、方法)
在UML类图中,类的使用包含类名、属性、方法且带有分割线的矩形表示。
(2)类与类之间关系
1.关联关系
关联关系又可进一步分为单向关联,双向关联和自关联.
(1)单向关联
我们可以看到,在UML类图中单向关联用一个带箭头的直线表示,上图表示每一个顾客都有一个地址,这通过Customer类持有一个类型为Adress的成员变量类实现。
2)双向关联
所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示,上图中在Customer类中维护一个Product[] 数组,表示一个顾客购买了那些产品,在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。
(3) 自关联
自关联在UML类图中用一个带有箭头且指向自身的直线,上图的意思是Node类包含类型为Node的成员变量,也就是“自己包含自己”
2.聚合关系
聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。
表示方法:空心菱形+实线+箭头,箭头指向个体
3.组合关系
组合关系与聚合关系的不同在于:这里的“部分”脱离了“整体”使不复存在,比如下图:
组合:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,组合关系不能共享。
表示方法:实心菱形+实线+箭头
4.依赖关系
从上图我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类,依赖关系用一条带有箭头的虚线表示。
依赖是是一种使用关系,它说明事物规格说明的变化可能影响到使用它的另一个事物。
5.继承关系:
继承关系对应的是extend关键字,在UML类图中用带空心三角形表示,如下图所示中,Student类与Teacher类继承了Person类。
6.接口实现关系
这种关系对应implement关键字,在UML类图中哟个带空心三角形的虚线表示,如下图中,Car类与Ship类都实现了Vehicle接口。
经过站在巨人的肩膀上,现在对类图有点理解了,剩下的在视频中在加深一下印象。