0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UML类图之间的关系

h1654155282.3538 来源:陈翠 2019-09-25 09:57 次阅读

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。

依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。

泛化(Generalization):通常所说的继承(特殊个体iskindof一般个体)关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向一般个体。

实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,BrealizeA。这个关系最常用于接口。uml中用空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。

关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。

聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体hasa部分)的关系。uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。

组合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。

其中依赖(Dependency)的关系最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的整体与部分关系的关联,而组合是表明整体与部分之间有相同生命周期关系的聚合。

而关联与依赖的关系用一句话概括下来就是,依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。

UML类图之间的关系

1、泛化(Generalization)

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

【箭头指向】:带三角箭头的实线,箭头指向父类

2、实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

【箭头指向】:带三角箭头的虚线,箭头指向接口

3、关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

下图为自身关联:

4、聚合(Aggregation)

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体

5、组合(Composition)

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

6、依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

各种关系的强弱顺序:

泛化=实现》组合》聚合》关联》依赖

下面这张UML图,比较形象地展示了各种类图关系:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UML
    UML
    +关注

    关注

    0

    文章

    122

    浏览量

    30848
  • UML建模
    +关注

    关注

    0

    文章

    7

    浏览量

    6803
收藏 人收藏

    评论

    相关推荐

    UML详解

    UML
    电子学习
    发布于 :2023年01月14日 10:12:47

    UML状态和Petri网络在测试用例生成的应用

    【作者】:陈志德;曾凡平;【来源】:《小型微型计算机系统》2010年03期【摘要】:分析和研究UML状态、扩展状态机和Petri网在测试用例生成的特点,提出结合三者优势的测试用例
    发表于 04-24 09:52

    编写电视TV,UML和说明

    编写电视TV,UML和说明如下:注意:(1)电视只有在打开的状态下才可以调音量和设置新频道;(2)设置音量和频道时,应该在规定的范围,如音量值为1-7。解题要求:编写测试
    发表于 10-29 06:09

    一文解析sal socket与其他socket之间关系

    1、sal socket与其他socket的关系结合结构体之间的引用关系,与下图看;从 uml 对象
    发表于 06-28 17:50

    基于UML的考试管理系统设计

    文中着重解决UML在完成各阶段任务中的应用、分析设计流程等问题,就与时序两者设计次序进行探讨。UML有利于各类人员
    发表于 12-22 17:14 35次下载
    基于<b class='flag-5'>UML</b>的考试管理系统设计

    时序关系

    和时序是在软件系统设计中直接和程序代码相关联的,准确地说,程序代码是由直接产生,而时
    发表于 10-29 11:21 6773次阅读
    时序<b class='flag-5'>图</b>和<b class='flag-5'>类</b><b class='flag-5'>图</b>的<b class='flag-5'>关系</b>

    Uml建模三种模型_uml建模的步骤

    描述系统内部对象及其关系的静态结构。模型由构建,图中节点表示
    的头像 发表于 09-25 09:51 1.6w次阅读
    <b class='flag-5'>Uml</b>建模三种模型_<b class='flag-5'>uml</b>建模的步骤

    什么是UML?常见的UML工具有哪些?

    UML是统一建模语言,又称标准建模语言。是对软件设计开发过程可视化建模的一种语言。多应用在一些软件系统工程上,有时在应用在机械系统和业务流程上有所应用。这种模型通常以图表方式呈现。 UML状态图
    的头像 发表于 06-22 14:10 4596次阅读
    什么是<b class='flag-5'>UML</b><b class='flag-5'>图</b>?常见的<b class='flag-5'>UML</b><b class='flag-5'>图</b>工具有哪些?

    UML简介与详解

    本篇介绍了UML的基础知识,包括2种和6种关系,并通过visio软件,演示如何画出一个UML
    的头像 发表于 05-05 09:07 3998次阅读
    <b class='flag-5'>UML</b>简介与<b class='flag-5'>类</b><b class='flag-5'>图</b>详解

    利用UML()表示之间的6种关系

    在java以及其他的面向对象设计模式中,之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强
    的头像 发表于 05-05 10:18 1996次阅读
    利用<b class='flag-5'>UML</b>(<b class='flag-5'>图</b>)表示<b class='flag-5'>类</b><b class='flag-5'>之间</b>的6种<b class='flag-5'>关系</b>

    UML相关基本知识介绍

    UML - Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语 言工具, 用于帮助软件开发人员进行思考和记录思路的结果。简单说,UML
    的头像 发表于 05-05 10:22 627次阅读
    <b class='flag-5'>UML</b>相关基本知识介绍

    UML学习笔记

    ,表示之间的联系,如关联、依赖、聚合等,也包括的属性和操作,描述的是一种静态
    的头像 发表于 05-05 10:26 688次阅读
    <b class='flag-5'>UML</b><b class='flag-5'>图</b>学习笔记

    UML图符号等详细介绍

    UML中描述对象和之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Gene
    的头像 发表于 05-05 10:41 990次阅读
    <b class='flag-5'>UML</b><b class='flag-5'>类</b>图符号等详细介绍

    解析UML和时序

    这里不会将UML的各种元素都提到,我只想讲讲图中各个之间关系; 能看懂图中各个
    的头像 发表于 05-05 11:03 646次阅读
    解析<b class='flag-5'>UML</b><b class='flag-5'>类</b><b class='flag-5'>图</b>和时序<b class='flag-5'>图</b>

    UML时序详解

    本篇介绍了UML时序的基础知识,并通过visio绘制一个物联网设备WIFI配网的UML时序实例,来介绍UML时序
    的头像 发表于 05-16 09:09 2122次阅读
    <b class='flag-5'>UML</b>时序<b class='flag-5'>图</b>详解