UML模型中的关系

前言
    关系这个词在我们日常生活中经常被提及到。最先想到的、最普遍的一种大概就是人和人或者人和物之间的关系了,也就是他们之间有什么联系。在客观世界中有很多种的关系,例如亲子关系、情侣关系等,都是表示人与人之间的联系。但是今天要分享的是计算机中,UML模型中的关系。
正文
    在UML模型中存在四种关系:关联、依赖、泛化、实现。 这些关系都是什么意思,又该如何使用呢?接下来小编为大家分享这部分的内容。
1、关联
    关联是一种结构化的关系,是指一种对象和另一种对象之间有联系,是关系中最普遍的关系。在UML图中,普通的关联关系用直线表示。
    比如说我们在浏览网页内容时,会有另一个网站的链接,当我们从这个网站上点击这个链接跳转到另一个网站,显示出相关的内容。这样的一个网站对象就访问了另一个相关的网站对象,这两个对象之间就可以是一种关联的关系。或者公司和员工之间的关系,也可以看做是一种关联的关系。
    关联可以有方向,表示该关联在某方面被使用。分为单向关联和双向关联。

在这里插入图片描述

    此外,UML模型中的关联可以是两个类之间的多种关联,可以是一个类和多个类之间的关联,也可以是类自身的关联。类自身的关联,就是说在同一个类下,不同对象之间有连接。
    在关联中,存在两种特殊的关系- 聚合、组合 。它们两个之间是有很大区别的。
1.1 聚合
    聚合表示的是两个对象之间是一种整体和部分的关系。 即一个表示整体的对象由几个表示部分的对象聚集在一起而成。它是一种松耦合,在UML模型中,用空心菱形表示。例如大米时代的学员,目前有十三期、十四期、十五期、十六期、十七期的同学,由这么多期的学员聚合而成整个大米时代。大米时代与学员之间就是一种聚合关系。
1.2 组合
    组合表示的是两个对象之间是一种整体和部分的关系,但是部分类需要整体类才能存在。即表示一个整体的对象是由几个表示部分的对象组合在一起而成。它是一种紧耦合,在UML模型中,用实心菱形表示。例如组装而成的小汽车,一辆完好的能正常行驶的小汽车,由发动机提供动力、由底盘做支撑、由车身承载等,小汽车中的每一组成部分都是必要的,不同功能的零件组合而成一辆能正常行驶的小汽车,零件与汽车之间构成了一个组合的关系。

2、依赖
    依赖描述两个模型元素(类等)之间的使用关系。 其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素存在。若独立的模型元素的规格发生变化,会影响到另一个依赖于它的模型元素;但反之未必。在UML中,依赖关系用一条带箭头的虚线来表示,箭头指向被依赖的一方。
    与关联关系的区别为对象间表现非固定关系。比如我们使用的手机以及给手机充电的充电器。手机依赖于充电器,一般情况我们都会选用与手机相匹配的原装充电器,如果换一个充电器可能会影响手机的充电速度或者是其他方面。在这里面,充电器是独立的元素,手机不是独立的元素,充电器的改变会影响手机充电的速度等方面。

3、泛化
    泛化关系是一种特殊与一般之间的关系,定义了一般元素和特殊元素中间的分类关系。特殊元素(子元素)的对象可以代替一般元素(父元素)的对象。在这种关系里,子元素共享了父元素的结构和行为。与编程语言中的继承关系类似。在UML模型中,泛化关系用带空心三角形的实线表示。

在这里插入图片描述


4、实现
    实现关系是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。在UML模型中,实现关系用带空心三角形的虚线表示。
    简单来说,实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,其中接口只是行为上的说明而不是结构或者实现。真正的实现还是由前一个模型元素来完成(接口用圆圈来表示)。
    通常会在两种地方使用实现关系:其一,在接口和实现它们的类与构件之间;其二,在用例和实现它们的协作之间。

    关联表示对象之间的结构关系,组合与聚合关系是关联中的特殊关系,表示整体-部分的关系;依赖表示元素之间的使用关系;泛化表示一般-特殊之间的关系;实现表示一种语义上的关系。在 UML模型中,关联是最普遍的一种关系,建模过程中,要准确定位对象之间的关系,当用关联的关系表示时,进一步想一想是不是可以精确到聚合关系。
结语
    在有些参考书中,有关UML中关系的划分与本文可能有一些出入,会划分为5种关系,即把聚合关系单独列为一类,但从整体上来说,仍没有脱离这几种关系。UML模型中的几种关系分享到这里就要告一段落啦。小编也是初次学习UML建模,若分享的内容有不妥之处,还请您能及时指出哦。
*感谢您的阅读,希望对您能有所帮助*

猜你喜欢

转载自blog.csdn.net/LZ15932161597/article/details/85547038