文章目录
- 一、背景
- 二、箭头详解
- 2.1 泛化(Generalization)
- 2.2 实现(Realize)
- 2.3 依赖(Dependency)
- 2.4 关联(Association)
- 2.5 聚合(Aggregation)
- 2.6 组合(Composition)
一、背景
因公司需求需要看懂类图以及能独立上手画类图,因类图中的基础就是6大箭头,而且6大箭头概念有些模糊,所以就有了此文章
二、箭头详解
UML中描述对象和类之间相互关系的方式包括:泛化、实现、依赖、关联、聚合、组合等。
2.1 泛化(Generalization)
1)概念:是一种继承关系(is-a),表示一般与特殊的关系,它指定了子类如何特化父类的所有特性和行为。例如:老虎是动物的一种,既有老虎的特性也有动物的共性。
2)图标
3)案例
2.2 实现(Realize)
1)概念:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2)图标
3)案例
2.3 依赖(Dependency)
1)概念:是一种使用的关系,即一个类的实现需要另一个类的协助。如方法参数需要传入另一个类的对象,就表示依赖这个类。
2)图标
3)代码体现::局部变量、方法的参数或者对静态方法的调用
4)案例
2.4 关联(Association)
1)概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。程序中一个类的全局变量引用了另一个类,就表示关联了这个类,关联关系分为单项关联和双向关联。在Java中,单向关联表现为:类A当中使用了类B,其中B作为类A的成员变量。双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量(双向关联有两个箭头或者没有箭头)。
2)图标:
3)代码体现::成员变量
4)案例
2.5 聚合(Aggregation)
1)概念:是整体与个体的关系(has-a),且个体可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合是关联关系的一种,是强的关联关系;关联和聚合在语义无法区分,必须考察具体的逻辑关系
2)图标
3)代码体现:成员变量
4)案例:
2.6 组合(Composition)
1)概念:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
2)图标
3)代码体现:成员变量
4)案例
借鉴地址