【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> UML 类图、类之间的关系

一、概述

UML(unified modeling language),统一建模语言,是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的结果。

UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如:类、接口、实现、泛化、依赖、组合、聚合等。

词汇说明:

UML 类图、类之间的关系

依赖(dependency),表示 使用到
关联(association),表示 一对一、多对多 的关系;
泛化(generalization),表示 继承
实现(realization;
聚合(aggregation),聚合是关联关系的一个特例,通过setter方法插入的成员变量类就是聚合关系
组合(composite),组合也是关联关系的一个特例,成员变量一开始就new好了,这个成员变量类型就是组合关系,耦合性要比聚合强一些。

二、关系说明

1)依赖关系

只要在类中用到对方,那么他们之间就存在依赖关系,如果没有对方,连编译通过都通过不了。

场景总结:

  1. 类的成员属性;
  2. 方法的返回结果;
  3. 方法接收的参数类型;
  4. 方法中使用到

凡是两个类直接有以上场景,他们之间就存在依赖关系。

2)泛化关系

泛化关系实际上就是继承关系,他是依赖关系的一个特例

UML 类图、类之间的关系

3)实现关系

实现关系实际上就是A类实现了B类,他是依赖关系的一个特例

UML 类图、类之间的关系

这里的实现关系的箭头和继承的箭头的区别在于实线和虚线的区别。

而实现和继承的区别,可以理解为java中接口和可继承类(如抽象类)的关系。

4)关联关系

关联关系实际上就是类和类之间的联系,他是依赖关系的一种特例。

关联关系具有导航性,关联关系具有多重性。

单向关联关系,有 单向一对一关系。

UML 类图、类之间的关系

双向关联关系,有 双向一对一关系。

UML 类图、类之间的关系

5)聚合关系

聚合关系,是整体和部分的关系,整体和部分可以分开

聚合关系是关联关系的一种特例,所以它具有关联关系的导航性和多重性。

UML 类图、类之间的关系

6)组合关系

组合关系,是整体和部分的关系,整体和部分不可以分开

聚合关系同样是关联关系的一种特例,所以它具有关联关系的导航性和多重性。

UML 类图、类之间的关系

如果两个类之间的关联关系是可以分开的,那么这个关联关系就是聚合关系;如果两个类之间的关系是不能分开的,那么就是组合关系。

相关文章: