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

    浏览量

    30751
  • UML建模
    +关注

    关注

    0

    文章

    7

    浏览量

    6777
收藏 人收藏

    评论

    相关推荐

    UML详解

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

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

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

    请问UML用例的创建方法是什么?

    UML用例的创建方法及其用例的描述
    发表于 11-06 07:10

    编写电视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的产生和成长,什么是UMLUML与面向对象的软件分析与设计,UML的应用领域。Component-Based
    发表于 02-08 17:42 0次下载

    损耗与频率之间关系

    损耗与频率之间关系
    发表于 10-22 14:20 7159次阅读
    损耗与频率<b class='flag-5'>之间</b>的<b class='flag-5'>关系</b>

    基于UML技术的客户关系管理系统实现

    针对企业客户关系管理提高客户忠诚度的问题,以银行作为应用案例,提出借助UML建模技术和B/S架构访问模式,设计出可应用与银行和储户之间沟通的客户关系管理系统,从而实现对客户管理的信息化
    发表于 12-21 10:16 17次下载

    字、字节、位之间关系

    字、字节、位之间关系
    发表于 06-19 10:16 0次下载

    UML简介与类图详解

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

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

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

    UML相关基本知识介绍

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

    UML的意义在于?

    为了了解UML,我们开篇先大致了解一些UML的概念。 我觉得这些概念看了之后大致有个印象就好了。 因为不在实际的过程中使用,没有讲到具体的图的时候,很难理解。 特别是对象之间
    的头像 发表于 05-05 10:35 527次阅读
    <b class='flag-5'>UML</b>的意义在于?

    UML类图符号等详细介绍

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

    解析UML类图和时序图

    这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的
    的头像 发表于 05-05 11:03 489次阅读
    解析<b class='flag-5'>UML</b>类图和时序图