浅谈UML类图
什么UML类图
UML类图用于描述系统中类(对象)自身的组成和类(对象)之间的各自静态关系
先上干货,让大家有个整体的认识
image.png类之间的关系
在UML类图中,常见的有以下几种关系: 依赖(Dependency)、泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition)
类图---依赖(Dependency)
类中用到了对方,那么他们之间就存在依赖关系
【概念】表示两个或多个模型元素之间语义上的连接关系
【绘图方式】虚线箭头,箭头指向被使用者
如:ClassA依赖于ClassB
image.png
【小结】
-
类中用到了对方
-
如果是类的成员属性
-
如果是方法的返回类型
-
是方法接受的参数类型
-
方法中使用到了
那么这两个类具有关联关系。
类图---泛化(Generalization)
泛化关系就是继承关系,是依赖关系的特例。
【概念】描述类的一般和具体之间的关系,描述的“is a kind of ”的关系
【绘图方式】实线空心三角箭头,箭头指向父类
【继承方式】
1.单继承:一个类只有一个父类
2.多继承:一个类可以有多个父类,可以从每一个父类中获得允许继承的信息
如: Class B继承与Class A
image.png
【小结】
泛化关系实际上就是继承关系
如果A继承了B,那么我们就说A和B存在泛化关系
类图-实现(Realization)
A类实现B接口,也是依赖关系的特例
【概念】将一种模型关系与另一种模型关系连接起来,从而说明和其实现之间的关系,简单的理解为一个类或多个类实现一个接口
【绘图方式】封闭空箭头的虚线,箭头指向接口
如:Class A实现了Interface A
image.png
类图-关联关系
类与类之间的关系,是依赖关系的特例 关联关系具有导航性:即双向关系或单向关系 关联关系有多重性:1:1,1:n,n:m
如: ClassA与ClassB相互关联
image.png
如:ClassA关联于ClassB
有方向的关联(DirectedAssociation)
image.png类图---聚合(Aggregation)
【概念】聚合关系表示整体和部分的关系,描述了“has a”的关系,部分离开整体可以单独存在。聚合关系是关联关系的特例,具有导航性和多重性,使用空心菱性来表示。例如:电脑和鼠标,键盘的关系。
【绘图方式】空菱形的实线,头部指向整体
如: 计算机 has-a cpu
image.png
类图---组合(Composition)
【概念】组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;孕妇死了胎儿自然也就死了;表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
【绘图方式】实菱形的实线,头部指向整体
如:孕妇 contains-a 胎儿
image.png
(本文由笔者自行整理,参考以下博客,欢迎转载,记得说明出处。)
参考博客:
http://www.mamicode.com/info-detail-2612659.html