简单读懂UML图(一)

一、基本概念

从百度百科上给出的定义来看:UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。简单来说就是从源代码中抽象出各个部件、类之间的关系制作出来的图,让读UML图的人不看源代码也能大致了解源代码的结构。

二、箭头

由于UML图的箭头比较多,在这里单独介绍箭头的种类及具体含义。

1. 泛化(generalization)

  • 概念:
    泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在java中用来表示继承的关系。简单来说,父类就是对子类的共性的抽象。
  • 表示方法:
    实现空心三角箭头。
    在这里插入图片描述

2.实现(realization)

  • 概念:
    实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述。
  • 表示方法:
    空心三角型箭头、线为虚线,由实现类指向接口
    在这里插入图片描述

3.依赖(dependency)

  • 概念:
    关系也是表示类与类之间的连接,表示一个类依赖于另外一个类的定义,依赖关系时是单向的。简单理解就是类A使用到了类B,这种依赖具有偶然性、临时性,是非常弱的关系。但是类B的变化会影响到类A。在代码层面,为类B作为参数被类A在某个方法中使用。在代码运行时,出了类A作用的代码块后,则没有依赖关系。
    在java中,依赖表现为:局部变量,方法中的参数和对静态方法的调用。
  • 表现方法:虚线箭头,类A指向类B。
    在这里插入图片描述

4.关联(association)

  • 概念:关系表示类与类之间的连接,它使得一个类知道另外一个类的属性和方法。这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。例如java中一个类的全局变量引用了另一个类,就表示关联了这个类。
  • 表示方法:实线箭头,类A指向类B
    在这里插入图片描述

5.聚合(aggregation)

  • 概念:聚合关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。程序中聚合和关联关系是一致的,只能从语义级别来区分。关联关系中类处于一个层次,而聚合则明显的在两个不同的层次。
  • 表示方法:尾部为空心菱形的实线箭头(也可以没箭头),类A指向类B
  • 在这里插入图片描述

6.组合(compostion)

  • 概念:关联关系的一种特例,体现的是一种contain-a关系,比聚合更强,是一种强聚合关系。它同样体现整体与部分的关系,但此时整体与部分是不可分的,整体生命周期的结束也意味着部分生命周期的结束,反之亦然。体现在代码层面与关联时一致的,只能从语义来区分。

特别的,组合与聚合几乎完全相同,唯一区别就是对于组合,“部分”不同脱离“整体”单独存在,其生命周期应该是一致的。

  • 表现方法:尾部为实心菱形的实现箭头(也可以没箭头),类A指向类B
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值