UML类图

一、UML

1、什么是UML?

UML——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。

2、UML图分类

画UML图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,UML图分类:
1)用例图(use case)
2)静态结构图: 类图、对象图、包图、组件图、部署图
3)动态行为图:交互图(时序图与协作图)、状态图、活动图
4)类图:是描述类与类之间的关系的,是UML图中最核心的

3、UML类图

UML类图用来描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系,类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。对于继承(泛化)、实现(实现)这两种关系比较简单,它们体现的是一种类与类、或者类与接口之间的纵向关系。 其他的四种关系则体现的是类与类、或者类与接口之间的引用/横向关系。这四种关系所表现的强弱程度来看,从强到弱依次为:组合>聚合>关联>依赖。

3.1、泛化关系

泛化关系其实就是继承关系:指的是一个类(称为子类、子接口)继承(extends)另外的一个类(称为父类、父接口)的功能,继承是类与类或者接口与接口之间最常见的关系。在UML类图中,继承通常使用 空心三角+实线 表示,如下:

在这里插入图片描述

3.2、实现关系

实现关系:指的是一个class类实现 interface接口(可以实现多个接口)的功能。在UML类图中,实现通常使用空心三角+虚线表示,如下:

在这里插入图片描述

3.3、依赖关系

依赖关系:指的是类与类之间的联接。依赖关系(include关系)表示一个类依赖于另一个类的定义。一般而言,依赖关系体现为成员变量、局域变量、方法的形参、方法返回值。假设有两个类,类A和类B,类A的某个成员方法的参数有类B,说明类A使用了类B,类A依赖类B,依赖关系即uses-a关系。在UML类图中,依赖通常使用虚线+箭头表示,如下:

在这里插入图片描述

3.4、关联关系

关联关系是一种强依赖的关系,假设有两个类,类A和类B,类B作为类A的成员变量存在,类A也可为类B的成员变量存在,如果互为成员变量则为双向依赖,否则为单向依赖。关联关系与依赖关系的区别在于,依赖关系是一种临时的关系,依赖关系主要体现在方法参数,当调用方法时才有关系,关联关系是一种长期的关系,主体现在成员变量,无论是否调用方法这种关系都存在。在UML中双向关联关系一条实线表示,单向关联为单向实线箭头表示 。

class B {
    ...
}

class A {
private:
    B b;    // A强依赖B
}

一个对象可以持有其它对象的数组或者集合。在UML中,通过放置多重性(multipicity)表达式在关联线的末端来表示。多重性表达式可以是一个数字、一段范围或者是它们的组合。多重性允许的表达式示例如下:

数字:精确的数量
*或者0..*:表示0到多个
0..1:表示0或者1个,在Java中经常用一个空引用来实现
1..*:表示1到多个

3.5、聚合关系

聚合关系是一种has-a关系,假设有两个类,类A和类B,类A包含类B,类B是类A的成员变量,聚合关系和关联关系都体现在成员变量,它们的区别在于:关联关系双方是平级的,是个体和个体的关系,聚合关系双方不是平级的,是整体和部分的关系。在UML中聚合关系用空心菱形+实线表示聚合关系,菱形连接整体,实线连接部分,如下:

在这里插入图片描述

3.6、组合关系

组合关系是一种强聚合的关系,组合关系与聚合关系的区别在于:聚合关系中部分离开整体仍可存活,组合关系中部分离开整体没有意义,比如:人由身体、四肢等部分组成 ,它们的关系为组合关系。在UML中组合关系使用实心菱形+实线表示,如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值