UML类图概要——《大话设计模式》读书笔记
先上一张总的UML类图,然后对其中的部分逐个讲解:
-
类
类图分三层,第一层表示类的名称,如果是斜体(如图中的“动物”),则表示这是一个抽象类。
第二层是类的特性,通常是属性和字段。
第三层是类的操作,通常是类的方法或者行为。
在上图中,特性和操作之前都有一个“+”号修饰,这表示修饰符,用+、-和#分别对应public、private和protected。
-
接口
- 矩形表示法:
第一行是接口名,第二行是接口方法,矩形表示法和类图的主要区别在于接口会多一个《interface》的标识。
- “棒棒糖表示法”:
圆圈旁为接口名称,接口方法在实现类中出现。
-
继承关系: 空心箭头+实线
-
实现关系:空心箭头+虚线
-
关联(Association)关系:实线箭头
企鹅需要“知道”气候的变化,需要“了解”气候的规律。当一个类“知道”另一个类时,可以用关联(Association)来表示。
-
聚合(Aggregation)关系:空心菱形+实线箭头
聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。他们拥有各自的生命周期,比如雁群在迁徙时形成,在迁徙完成后消散,这是雁群的生命周期,但是某只大雁的生命周期可以完全独立于雁群之外:在雁群形成前就出生,在雁群消散之后继续存活。
-
合成(Composition,也有翻译成‘组合’的)关系:实心菱形+实线箭头
合成表示一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。翅膀的生命周期必须和鸟的生命周期相同,而不能单独作为翅膀独立存活。
-
依赖(Dependency)关系: 虚线箭头
动物的所有行动都离不开氧气和水,他们之间用虚线箭头表示依赖关系。