图文并茂,详细讲解类图符号各种关系说明以及举例腾讯云开发者社区

点击上方蓝色“程序猿DD”,选择“设为星标”

回复“资源”获取独家整理的学习资料!

作者 | duanxz

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

(软件开发中,往往会设计一些公用类,供别的类调用,如果这些公用类出问题了,那调用这些公用类的类都会因此而出问题。

两个元素之间的一种关系,其中一个元素(提供者)的变化将影响另一个元素(客体),或向它提供所需信息显示一个类引用另一个类)

方法参数示例:

表示方法:虚线加箭头

特点:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某个方法体内)才有关系。

依赖关系可以分为以下四类:

1)  使用依赖(Usage)表示客户使用提供者提供的服务以实现它的行为,包括:

2)  抽象依赖(Abstraction)表示客户与提供者之间用不同的方法表现同一个概念,通常一个概念更抽象,一个概念更具体。包括:

4)  绑定依赖(Binding)较高级的依赖类型,用于绑定模板以创建新的模型元素,包括:

表示方法:实线箭头

特征:表示类与类或类与接口之间的依赖关系,表现为“拥有关系”;具体到代码可以用实例变量来表示。(A类有一个成员变量保存的是B类的一个引用,也就是说由A类可以找到B类)

表示方法:空心菱形头

特征:属于是关联的特殊情况,体现部分-整体关系,是一种弱拥有关系;整体和部分可以有不一样的生命周期;是一种弱关联;

表示方法:一般是实心菱形加实线箭头表示

特征:属于是关联的特殊情况,也体现了体现部分-整体关系,是一种强“拥有关系”;整体与部分有相同的生命周期,是一种强关联;

带空心箭头的实线线表示

泛化(下图)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。

泛化关系表示类与类之间的继承关系,接口与接口之间的继承关系。如下图:

实例(图I)关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。表达一种说明元素与实现元素之间的关系;

图一

(1)聚合与组合都是一种结合关系,只是额外具有整体-部分的意涵。

(2)部件的生命周期不同

聚合关系中,整件不会拥有部件的生命周期,所以整件删除时,部件不会被删除。再者,多个整件可以共享同一个部件。

(3)聚合关系是“has-a”关系,组合关系是“contains-a”关系。

在做软件需求时,往往会将所有的包含关系画成“弱”包含,后面发现某些关系可以表示为“强”包含是,才转为实心菱形。

(1)表现在代码层面,和关联关系是一致的,只能从语义级别来区分。

(2)关联和聚合的区别主要在语义上,关联的两个对象之间一般是平等的,例如你是我的朋友,聚合则一般不是平等的。

(3)关联是一种结构化的关系,指一种对象和另一种对象有联系。

(4)关联和聚合是视问题域而定的,例如在关心汽车的领域里,轮胎是一定要组合在汽车类中的,因为它离开了汽车就没有意义了。但是在卖轮胎的店铺业务里,就算轮胎离开了汽车,它也是有意义的,这就可以用聚合了。

(1)关联关系中,体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。

(2)依赖关系中,可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A。

实现表示类对接口的实现关系,表示方式:用一条带有空心三角箭头的虚线指向接口。

泛化表示类与类之间的继承关系、接口与接口之间的继承关系,表示方式一条带有空心三角箭头的实线指向基类(父接口)。

这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;但总的来说,后几种关系所表现的强弱程度依次为:

组合>聚合>关联>依赖

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

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

THE END
0.uml菱形UML类图的各符号含义本文介绍了UML类图基本符号,如虚线、箭头、实心与空心菱形等,阐述了这些符号组合所代表的类间关系,包括依赖、关联、聚合、组合等。还说明了类、接口的表示方法,以及继承、实现接口等关系的符号,同时提到了连线两端基数的含义。 UML 类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱jvzquC41dnuh0lxfp0tfv8|gkzooa<>756>858ftvkimg8igvcomu86337;789<
1.❖在SYMBL (◕‿◕) 上发现并复制符号 ❖ 实心菱形负号空心 X 的意义!Unicode 编号: U+2756. HTML: &#10070;. 子块 「雜」 在块 「印刷符号」 中。了解在哪里以及如何使用这个符号!jvzquC41u{scn7he1et04@:81
2.王者荣耀名字特殊符号汇总2023最新特殊符号名字大全王者荣耀名字特殊符号主要有花体符号,爱心符号,自然符号,星座符号,星星符号,上下左右的箭头、风向、指南针符号,正方形、长方形、菱形和填色方块的符号,三角符号、单线框、双线框符号等等。 王者荣耀名字特殊符号大全 1、花体符号 ༺࿈༻、❀༒❀、༺༽༾ཊ࿈ཏ༿༼༻、༺❀ൢ༒ൢjvzquC41yy}/3A6:50ipo8~z|lum1;5433705@7;59:/j}rn
3.蓝色小菱形Emoji表情符号🔹|Emojiall带有关键字蓝色小菱形的Emoji表情符号列表如下:🔹 蓝色小菱形 🔷 蓝色大菱形 🔸 橙色小菱形 ◊ 菱形 🔶 橙色大菱形 💠 带圆点的菱形 🔵 蓝色圆 🟦 蓝色方块 📘 蓝色书本 🩵 浅蓝色的心 ♦︎ 方片 ♦️ 方片 💙 蓝心 🫐 蓝莓 📊 条形图 🚐 小巴 🏵️ 圆形花饰 🫪 变形jvzquC41yy}/gvtlkcrm0lto1|n.jjsu1mkzyxwfu1+F:.>5';J&GA*:;'H3'N:'D2+9H.J:':L&D:*G7'HE'J7
4.菱形符号怎么打出来符号是我们生活及游戏中经常会用到的,那么菱形符号怎么打?很多小伙伴都不太了解,下面小编带来菱形符号输入方法,希望对大家有所帮助。 菱形符号输入方法: 方法1 最简单的,直接复制右侧的符号即可◇ ◆ 方法2 在搜狗输入法中左键点击小键盘图标,如图所示, jvzquC41o0sjppk0lh637sgv1lvjjt154<257mvon
5.uml菱形UML各种表示方法表示方法:实心菱形+实线+箭头, 依赖关系: 是类与类之间的连接, 表示一个类依赖于另一个类的定义。 例如如果 A 依赖于 B , 则 B 体现为局部变量,方法的参数、或静态方法的调用。 表示方法:虚线+箭头 === === 类之间的关系 UML 把类之间的关系分为以下 5 种 . ● 关联:类jvzquC41dnuh0lxfp0tfv8|gkzooa<>;7:62;8ftvkimg8igvcomu86337;78>>
6.UML类图符号解析类图中的基本符号由虚线、箭头、实线、空心三角形、空心菱形、实心菱形组成,这些符号的组合构成类图的基本符号 实线+箭头 表示关联关系 关联关系分类 自身关联 表示自身拥有一个自身的引用 单向关联 一方拥有另一方的引用,可以调用另一方的公共属性和方法 双向关联 jvzquC41dnuh0lxfp0tfv8r2a5>23;6871gsvrhng1jfvjnnu171;;=8758
7.UML类图符号全解析类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形。 由这些基本的图形进行组合构成了类图的基本符号。这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程度。越向右耦合度越高。 虚线+箭头 表示即依赖的关系,实线+箭头表示关联的关系 虚线+空心右三角表示implements 实线+空心右三角表示jvzquC41dnuh0lxfp0tfv8r{afxfcvdgve5bt}neng5eg}fknu597:62428
8.⤞在SYMBL (◕‿◕) 上发现并复制符号 ⤞ 向右箭头到实心菱形 的意义!Unicode 编号: U+291E. HTML: &rarrfs;. 子块 「雜箭」 在块 「追加箭头B」 中。了解在哪里以及如何使用这个符号!jvzquC41u{scn7he1et04B6G1
9.三角形Emoji表情符号🔺🔻🔼🔽|Emojiall带有关键字三角形的Emoji表情符号列表如下:🔽 向下三角形按钮 🔼 向上三角形按钮 🔻 红色倒三角 🟕 循环三角形 🔺 红色正三角 🟖 负循环三角形 🛆 带圆角的三角形 ⛛ 白色向下指向三角形 ▲ 实心向上三角 📐 三角尺 🩲 三角裤 ▼ 实心向下三角 🏲 黑色三角旗 🚩 三角旗 🏱 白色jvzquC41yy}/gvtlkcrm0lto1|n.jjsu1mkzyxwfu1+F6.G:':?&GA*C9'?3'N:'DF+B4
10.向右箭头从条到实心菱形,Unicode编号:U+2920📖了解符号在SYMBL (◕‿◕) 上发现并复制符号 ⤠ 向右箭头从条到实心菱形 的意义!Unicode 编号: U+2920. HTML: &rarrbfs;. 子块 「雜箭」 在块 「追加箭头B」 中。了解在哪里以及如何使用这个符号!jvzquC41u{scn7he1et04B721
11.uml菱形UML建模常用的符号速记软件设计开发常使用UML建模,如类图、时序图等。UML是统一建模语言,有结构式、行为式、交互式图形。文中介绍了UML符号使用技巧,包括箭头方向、实线虚线、空心实心菱形的含义,还提及组合关系中数字表达的意义。 平常软件设计开发过程中,或多或少都会都会用到UML建模,类图,时序图,活动图等都是在设计一个功能模块的时候jvzquC41dnuh0lxfp0tfv8|gkzooa<>829?478ftvkimg8igvcomu86337;78>9
12.特殊符号大全图形符号 2019独角兽企业重金招聘Python工程师标准>>> 正方形、长方形、菱形和填色方块的符号 ˍ∎⊞⊟⊠⊡⋄⎔▀▁▂▃▄▅▆▇█▉▊▋▋▌▍▎▏▐░▒▓▔▖▗▘▙▚▛▜▝▞▟■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯▰▱►◄◆◇◈◢◣jvzquC41dnuh0lxfp0tfv8|gkzooa<8::36628ftvkimg8igvcomu8>476?72=
13.建议三角形标志图案的实心菱形图标插画正版商用图片11otyk摄图新视界提供建议三角形标志图案的实心菱形图标图片下载,另有事故,报警信号,警报,注意,要当心,小心,拼贴画,概念,Blade,危险,危险,设计元素,元素,元素,感叹号标志图片搜索供您浏览下载,每张图片均有版权可放心商用,您正在浏览的图片为11otykjvzquC41zup/8B>rke4dqv4vwrobp863qvl0qyon
14.UML类图符号:各种关系说明以及举例uml关系符号组合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。 jvzquC41dnuh0lxfp0tfv8vsa4?35>;991gsvrhng1jfvjnnu173:A72968