浅谈UML类图

in 元件分享 with 1 comment

什么UML类图

UML类图用于描述系统中类(对象)自身的组成和类(对象)之间的各自静态关系

先上干货,让大家有个整体的认识

2021-05-21T03:36:43.png

image.png

类之间的关系

在UML类图中,常见的有以下几种关系: 依赖(Dependency)、泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition)

类图---依赖(Dependency)

类中用到了对方,那么他们之间就存在依赖关系

【概念】表示两个或多个模型元素之间语义上的连接关系

【绘图方式】虚线箭头,箭头指向被使用者
如:ClassA依赖于ClassB

2021-05-21T03:37:01.png

【小结】

  1. 类中用到了对方
  2. 如果是类的成员属性
  3. 如果是方法的返回类型
  4. 是方法接受的参数类型
  5. 方法中使用到了

那么这两个类具有关联关系。

类图---泛化(Generalization)

泛化关系就是继承关系,是依赖关系的特例。

【概念】描述类的一般和具体之间的关系,描述的“is a kind of ”的关系

【绘图方式】实线空心三角箭头,箭头指向父类

【继承方式】

1.单继承:一个类只有一个父类

2.多继承:一个类可以有多个父类,可以从每一个父类中获得允许继承的信息
如: Class B继承与Class A

2021-05-21T03:37:18.png

【小结】

泛化关系实际上就是继承关系

如果A继承了B,那么我们就说A和B存在泛化关系

类图-实现(Realization)

A类实现B接口,也是依赖关系的特例

【概念】将一种模型关系与另一种模型关系连接起来,从而说明和其实现之间的关系,简单的理解为一个类或多个类实现一个接口

【绘图方式】封闭空箭头的虚线,箭头指向接口
如:Class A实现了Interface A
2021-05-21T03:37:33.png

类图-关联关系

类与类之间的关系,是依赖关系的特例 关联关系具有导航性:即双向关系或单向关系 关联关系有多重性:1:1,1:n,n:m
如: ClassA与ClassB相互关联
2021-05-21T03:37:46.png

如:ClassA关联于ClassB

有方向的关联(DirectedAssociation)

2021-05-21T03:38:00.png

类图---聚合(Aggregation)

【概念】聚合关系表示整体和部分的关系,描述了“has a”的关系,部分离开整体可以单独存在。聚合关系是关联关系的特例,具有导航性和多重性,使用空心菱性来表示。例如:电脑和鼠标,键盘的关系。

【绘图方式】空菱形的实线,头部指向整体
如: 计算机 has-a cpu
2021-05-21T03:38:12.png

类图---组合(Composition)

【概念】组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;孕妇死了胎儿自然也就死了;表现在代码层面,和关联关系是一致的,只能从语义级别来区分。

【绘图方式】实菱形的实线,头部指向整体
如:孕妇 contains-a 胎儿
2021-05-21T03:38:25.png

(本文由笔者自行整理,参考以下博客,欢迎转载,记得说明出处。)

参考博客:

http://www.mamicode.com/info-detail-2612659.html

https://blog.csdn.net/jiuqiyuliang/article/details/8568303

https://blog.csdn.net/duran1986/article/details/5573415

转自 https://www.jianshu.com/p/0ae2ab6ef784

Responses
  1. wind

    学到了

    Reply