学习设计模式,离不开UML(统一建模语言)类图的使用,本文详细梳理下UML六种类图的含义:
1、关联(Association):
表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。程序中一个类的全局变量引用了另一个类,就表示关联了这个类,关联关系分为单项关联和双向关联。
单向关联表现为:类A当中使用了类B,其中B作为类A的成员变量。
双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量(双向关联有两个箭头或者没有箭头)。

2、依赖(Dependency):
一种使用的关系,即一个类的实现需要另一个类的协助。如方法参数需要传入另一个类的对象,就表示依赖这个类。

3、泛化(Generalization)/继承(Inheritance):
一般与特殊的关系,它指定了子类如何特化父类的所有特性和行为。例如:老虎是动物的一种,既有老虎的特性也有动物的共性。

4、实现(Implementation)/接口实现:
一种类与接口的关系,表示类是接口所有特征和行为的实现。

5、聚合(Aggregation):
是整体与个体的关系(has-a),且个体可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合是关联关系的一种,是强的关联关系;关联和聚合在语义无法区分,必须考察具体的逻辑关系

6、组合(Composition):
整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
