UML类图符号

news/2024/7/4 1:31:58 标签: uml, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">
class="article_content" style="margin:20px 0px 0px; font-size:14px; line-height:26px; font-family:Arial; color:rgb(51,51,51)">

 原文地址:http://blog.csdn.net/l_nan/article/details/37036787

软件开发过程中经常会遇到UML建模,那么你对UML符号是否熟悉,这里向大家简单介绍一下UML类图符号,每种符号都有不同的意义,希望通过本节的学习你对UML类图符号会有一定的了解,下面就让我们一起来看一下UML类图符号的详细介绍吧。

UML类图符号

        在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

1、泛化(继承)

【箭头指向】:带三角箭头的实线,表示继承一个基类,B类继承A类。

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

【泛化例子】:老虎是动物的一种,既有老虎的特性也有动物的共性。

2、实现

【箭头指向】:带三角箭头的虚线,箭头指向接口,表示C类实现接口的定义。

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

3、关联

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

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的特征和行为,关联分为单项关联和双向关联两种;双向关联可以用俩头带箭头的实现表示,也可以不要箭头。

【3.1】、单向关联:仅能从一个类访问到另一个类(前者的属性中有后者),B类单项关联A类(B中有属性a为类A的对象);如:学生与课程的单向关联。

【3.2】、双向关联:两个类之间能相互访问(两个类的属性中都有对方),B类关联A类(B中有属性a为类A的对象),A类关联B类(A中有属性bs为Set,Set包含B的对象),A和B是1对n(n>0)的关联;如老师与学生的双向关联。

【3.3】、自身关联:... ...

【代码体现】:成员变量

4、聚合

【箭头方向】:带空心菱形的实线,菱形指向整体;Wheel类扮演wheels角色,聚合4个到Car对象里面去。

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如Car和Wheel是整体与部分的关系,Wheel离开Car仍然可以存在,并不随Car的创建而创建,销毁而销毁。

【代码体现】:成员变量

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

5、组合

【箭头方向】:带实心菱形的实线,菱形指向整体;Company对象完全由Department对象组成。

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如Company和Department是整体与部分的关系,没有Company就没有Department,Department随Company的创建而创建,销毁而销毁。

【代码体现】:成员变量

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

6、依赖

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

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

【代码体现】:如果类A访问类B的属性或者方法,或者类A负责实例化类B,那么可以说类A依赖类B(局部变量、方法的参数或者对静态方法的调用)。

【依赖PK关联】:和关联关系不同,无须再类A中定义类B类型的属性。

各种关系的强弱顺序

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

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

 

class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="zoom:1; color:rgb(51,51,51); font-family:Arial,Console,Verdana,"Courier New"; float:right"> class="bds_qzone" title="分享到QQ空间" style="color:rgb(51,102,153); text-decoration:none; float:left; padding-left:17px; line-height:16px; height:16px; margin:6px 6px 6px 0px" rel="noopener noreferrer"> class="bds_tqq" title="分享到腾讯微博" style="color:rgb(51,102,153); text-decoration:none; float:left; padding-left:17px; line-height:16px; height:16px; margin:6px 6px 6px 0px" rel="noopener noreferrer">

http://www.niftyadmin.cn/n/866334.html

相关文章

ouster S1-32-U gen2 静态IP设置和gen1 静态IP设置的区别

使用ouster的时候通常需要将激光的IP设置成静态IP,GEN1和GEN2在设置IP的时候有所不同. gen1通过以下链接进行IP地址的设置. 如何设置雷达静态IP 其中 echo \"目标.设置.静态.IP/24\" | http PUT http://雷达.当前.IP.地址]/api/v1/system/network/ipv4/override/此…

(2) 机器视觉技术发展的五大趋势

机器视觉技术发展的五大趋势 在过去的一年里,人工智能(AI)、大数据、3D成像和机器人过程自动化等领域在取得了空前的发展。在即将到来的2019年,机器视觉技术应用还将蓬勃发展,新机器视觉认为五大发展趋势将引领行业应用。 3D成像和Bin Pick…

java.lang.IllegalArgumentException: Malformed \uxxxx encoding

问题的出现:今天在进行读取properties文件的时候报错,java.lang.IllegalArgumentException: Malformed \uxxxx encoding 后来在网上查找了一下,发现properties中不能含有\符号. 只要遇到就会报上面的错误. 解决方式:将properties中的\改为\\或者/.就行了.

初学者如何快速学会PCL库的使用

初学者如何快速学会PCL库的使用在PCL官网上有很多PCL库的小的使用例程,只要将其代码看懂,加以运行就会很快掌握一个pcl库的调用方法。 进入PCL官网 点击Tutorials 这个说明文档是一个比较好的入门手册: 里面会教你如何编译这个Tutorials里…

Linux -- SSH基础

【维基百科】 Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。虽然任何网络服务都可以通过SSH…

说说 MD5 加密后的类型(16位与 32位的区别)

MD5 加密后的位数一般为两种,16 位与 32 位。16 位实际上是从 32 位字符串中,取中间的第 9 位到第 24 位的部分,用 Java 语言来说,即: str.substring(8, 24); MD5 加密后的字符串又分为大写与小写两种。 所以一个 “…

压力测试相关内容记录

最近做项目涉及到了一些跟压力测试相关的东西,在次记录一下 1.压力测试工具: 1.Jmeter:apache旗下一款用于测试的工具,可以发起http请求,接口测试等,可以看到每次请求的参数结果,可以生成各种报告,相应时间,吞吐量等; 2.JConsole:JDK自带的工具,配置好了java黄金变量以后,直接在…

C++ Basic 15: C++ 字符串

C 字符串 C 提供了以下两种类型的字符串表示形式: C 风格字符串C 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的…