依赖、关联、聚合、组合关系

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32767041/article/details/83421261

UML类关系

1. 泛化关系

对于面向对象编程语言,UML中所说的泛化关系(Generalization)就是指类的继承关系。

如果一个类是另一个类的子类,那么UML通过使用一个实线连接两个类的UML图来表示二者之间的继承关系,实线的起始端是子类,终点端是父类,终点端使用一个空心的三角形表示实线的结束。

在这里插入图片描述

2. 实现关系

如果一个类实现了一个接口,那么类和接口的关系是实现关系(Realization)。

UML通过使用虚线连接类和它所实现的接口,虚线的起始端是类,终点端是它实现的接口,终点端使用一个空心的三角形表示虚线的结束。

在这里插入图片描述

3. 依赖关系

如果A类中某个方法的参数用B类来声明的变量或某个方法返回的数据类型是B类型的,那么A和B的关系是依赖关系(Dependency),称A依赖于B。

在java中,依赖表现为:局部变量,方法中的参数和对静态方法的调用。

如果A依赖于B,那么UML通过使用一个虚线连接A和B,虚线的起始端是A,终点端是B,终点端使用一个指向B的方向箭头表示虚线的结束。

在这里插入图片描述

4. 关联关系

如果A类的成员变量是用B类来声明的变量,那么A和B的关系是关联关系(Association),称A关联与B。

在Java语言中,关联关系一般使用成员变量来实现。

如果A关联与B,那么UML通过使用一个实线连接A和B,实线的起始端是A,终点端是B,终点端使用一个指向B的方向箭头表示实线的结束。

在这里插入图片描述

5. 聚合关系

聚合(Aggregation)关系是关联关系的一种,是整体和个体之间的关系,如雁群和大雁的关系,即has-a关系。

在聚合关系中,两个类时处在不平等层次上的,一个代表整体,一个代表个体。

在Java中,与关联关系一样,聚合关系也是通过成员变量实现的。

在这里插入图片描述

6. 组合关系

组合(Composition)关系是关联关系的一种,是整体与部分的关系,这里的整体与部分是不可分的,如大雁和翅膀的关系,即contains-a关系。

在这里插入图片描述

7. 耦合度强弱

耦合度由弱至强:

依赖关系<关联关系<聚合关系<组合关系

猜你喜欢

转载自blog.csdn.net/qq_32767041/article/details/83421261
今日推荐