UML五种关系

uml使用(一)--时序图编写 文章目录一、简介 一、简介 uml(unified modeling language)即统一建模 阅读详情

转自http://blog.youkuaiyun.com/java2000_wl/article/details/7862031

<1>依赖

依赖关系用虚线加箭头表示,如图所示:


上图表示:Animal类依赖于Water类(动物依赖于水)。

 依赖是类的五种关系中耦合最小的一种关系。因为依赖关系在生成代码的时候,这两个关系类都不会增加属性。这种微弱的关系可以用类之间的相互了解的程度来说明。(下图为代码生成图)

                      

由上图可见生成的代码中Animal类的属性中没有增加Water类。那么Animal类如何使用Water类呢,有三种方式:

依赖关系的三种表现形式:

①    Water类是全局的,则Animal类可以调用它
 

②    Water类是Animal类的某个方法中的变量,则Animal类可以调用它。代码演示如下:

  PS:Animal有一个长大(GrownUp)方法,Water类作为该方法的变量来使用。
          请注意Water类的生命期,它是当Animal类的GrounUp方法被调用的时候,才被实例化。
         持有Water类的是Animal的一个方法而不是Animal类,这点是最重要的。

③    Water类是作为Animal类中某个方法的参数或者返回值时。代码演示如下

 

 

无用多说,Water类被Animal类的一个方法持有。生命期随着方法的执行结束而结束。

 

在依赖关系中,必须采用这三种方法之一。

 

<2>关联

关联是实线加箭头表示。表示类之间的耦合度比依赖要强。

例:水与气候是关联的,表示图如下



 

生成代码如下:





 


 

可见生成的代码中,Water类的属性中增加了Climate类。

 

关联既有单向关联又有双向关联。

单向关联:Water类和Climate类单向关联(如下图),则Water类称为源类,Climate类称为目标类。源类了解目标类的所有的属性和方法,但目标类并不了解源类的信息。

双向关联:源类和目标类相互了解彼此的信息。如将Water类和Climate类之间改为双向关联,如下图


 

 

依赖和关联的区别:

①    从类的属性是否增加的角度看:

发生依赖关系的两个类都不会增加属性。其中的一个类作为另一个类的方法的参数或者返回值,或者是某个方法的变量而已。

发生关联关系的两个类,其中的一个类成为另一个类的属性,而属性是一种更为紧密的耦合,更为长久的持有关系。

②    从关系的生命期角度看:

依赖关系是仅当类的方法被调用时而产生,伴随着方法的结束而结束了。

关联关系是当类实例化的时候即产生,当类销毁的时候,关系结束。相比依赖讲,关联关系的生存期更长。

 

关联关系的细化

关联关系又可以细化为聚合关系和组合关系

聚合关系图:


 

组合关系图:

 


 

l      聚合和组合的区别:

由于聚合和组合都是特殊的关联关系,在生成的代码上看不出区别,都是关联的形式。那到底这两种关系如何来区分呢。

 

区分的关键有两点:

①    构造函数不同

聚合关系下:雁群类(GooseGroup)和大雁类(Goose)代码如下:

 


 

组合关系下:大雁类(Goose)和翅膀类(Wings)代码如下:

 


 

这两种关系的区别在于:

①构造函数不同

    聚合类的构造函数中包含了另一个类作为参数。

雁群类(GooseGroup)的构造函数中要用到大雁(Goose)作为参数传递进来。大雁类(Goose)可以脱离雁群类而独立存在。

    组合类的构造函数中包含了另一个类的实例化。

表明大雁类在实例化之前,一定要先实例化翅膀类(Wings),这两个类紧密的耦合在一起,同生共灭。翅膀类(Wings)是不可以脱离大雁类(Goose)而独立存在

②    信息的封装性不同

在聚合关系中,客户端可以同时了解雁群类和大雁类,因为他们都是独立的

而在组合关系中,客户端只认识大雁类,根本就不知道翅膀类的存在,因为翅膀类被严密的封装在大雁类中。

 

<3>泛化

泛化就是一个类继承另一个类所有的描述,并且可以根据需要对父类进行拓展,是面向对象的重要特征之一。

泛化使用一根实线加箭头,泛化关系图

 


 

泛化的用处:①实现了代码的复用

                        ②实现了多态

           

<4>实现

 主要针对接口和抽象类而言,实现接口和抽象类的类必须要实现他们的方法。

实现关系表示为:虚线加箭头,关系图如下:

 

接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的。

【图+文】一文读懂UML类图中五大关系以及其相应特点! 文章目录 文章目录文章目录类图的五种关系一、依赖关系1.1、说明1.2、依赖关系图和代码的联系1.3、思考二、关联关系2.1、说明2.2、关联关系图和代码的联系2.3、思考三、聚合关系3.1、说明3.2、聚合关系图和代码的联系3.3、思考四、组合关系4.1、说明4.2、组合关系图和代码的联系(三)思考五、实现关系5.1、说明5.2、实现关系图和代码5.3、思考六、泛化关系6.1、说明6.2、泛化关... 阅读详情

相关推荐

UML类图类之间的关系

根据类与类之间的耦合度从弱到强排列,UML中的类图有以下几种关系:依赖关系,关联关系,聚合关系,组合关系,泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。 1、依赖关系 依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联关系,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。 在UML类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。 图 4 所示.

m0_55428601的博客 1493

UML中的几种关系(依赖,关联,泛化,实现)

关于设计模式的总结没有落实到代码上,而且设计模式自己确实动手实现的非常少。所以在这一周里,除了看网站开发的视频,着手开始对设计模式进行实现以下。设计模式非常经典,每次看都有不同的收获,写一下自己的收获吧,请大家指正。  在实现设计模式之前,首先来复习以下UML中的五种关系图 依赖 依赖关系用虚线加箭头表示,如图所示: 上图表示:Animal类依赖于Water类(动物依赖于水)。

归零 2658

细说UML五种关系

依赖关系(Dependence):          依赖关系是一种使用关系,对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,当一个系统改变会影响到另一个系统,反之不成立。或者依赖另一个系统的服务时,例如生产零件的机器和零件,机器负责构造零件对象。          出现依赖的三种情况:          (1)A类是B类某个方法的局部变量。          (2)A类是B类

3735

UML中的五种关系

UML中的关系(Relationships)主要包括5种:关联关系、聚合关系、依赖关系、泛化关系和实现关系。 关联(Association)关系 关联关系是一种结构化的关系,指一种对象和另一种对象有联系。给定关联的两个类,可以从其中的一个类的对象访问到另一个类的相关对象。在UML图中,关联关系用一条实现表示。 另外,关联可以有方向,表示该关联在某方向被关联(Unidirectiona...

景月娇-Kathy 7651

SAP-MM-PR分配货源并转PO

SAP-MM-PR分配货源并转PO

yanzibing99的博客 5472

解决:Solving environment: failed CondaValueError: Malformed version string ‘~‘: invalid character(s).

解决:Solving environment: failed CondaValueError: Malformed version string '~': invalid character(s).

晚风微凉的博客 1万+

UML的五种关系

http://blog.youkuaiyun.com/zfrong/article/details/3771842 http://www.51testing.com/html/93/n-234293.html http://www.guan8.net/Java/109821.html UML中有依赖(dependency),关联(association),聚合(aggregation),组合(compo

gukesdo的专栏 1560

LIN总线从入门到精通:低成本汽车通信协议原理与实战

在汽车电子和嵌入式系统中,串行通信协议是实现分布式控制的关键技术。其中,LIN(Local Interconnect Network)总线作为一种专为低成本应用设计的单主多从网络协议,其核心原理在于通过简化的“领导-汇报”通信模式,在满足车身控制、传感器数据采集等场景需求的同时,将硬件与布线成本降至最低。LIN总线采用标准化的帧结构,包含间隔场、同步场和受保护标识符场,并依赖调度表来管理通信时序,确保了网络的确定性与可靠性。其技术价值在于为车窗、座椅、灯光等非安全关键系统提供了高性价比的解决方案,是构建分层

weixin_29185167的博客 260

uml图的五种关系

统一建模语言Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Boo

盖丽男 1462

Li‘s 核磁共振影像数据处理-4-使用3D Slicer从DTI计算参数图(FA、ADC等)

从DTI计算参数图 通过3D Slicer软件计算 主要步骤 导入DICOM影像 3D Slicer似乎只能支持DICOM格式和NRRD格式的DTI处理,而无法支持NIFTI+磁场梯度信息文件的方式。(这里不确定,如有错误请指正。) 模块选择: 需要选择或设置的内容包括:选择DicomToNrrd,设置Output DWI Volume file,设置Input Dicom Data Directory。设置好后点击“Apply”。 制作mask。 实质就是去脑壳。 模块选择: 需要设置的内

weixin_38594676的博客 3920

2025 高效抓取雪球社区数据:自动化导出Excel与PDF全攻略

本文详细介绍了2025年高效自动化抓取雪球社区数据的完整方案。通过Python脚本,用户可自动抓取帖子列表数据并导出为结构化的Excel表格,同时批量将帖子内容保存为PDF文档,并支持合并与添加书签,极大提升投资研究和信息整理的效率。

weixin_29034963的博客 690

UML类图五种关系与代码的对应关系

UML类图中的五种关系的耦合强弱比较:依赖关联聚合组合继承 一、依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系。 因为在生成代码的时候,这两个关系类都不会增加属性。 (二)依赖关系图与代码的对应关系 (PS:依赖关系:Animal依赖于Water(动物依赖于水))

LSGO_MaYanPeng的博客 662

Fabric V2.5 通用溯源系统——使用Hyperledger Caliper压力测试

Caliper是一款测试区块链性能的工具,支持Hyperledger Fabric、Ethereum等,支持丰富的测试配置参数,测试完成后将直接输出报告,相较于tape更加专业,但是配置稍微有些复杂。本文将一步一步配置Caliper以测试Fabric V2.5 通用溯源系统中的注册用户、查询用户、农产品上链、农产品查询的区块链性能。

TrueTechLabs 官方博客 1395

UML类图五种关系的代码实现

初次接触UML的时候,就对比过类图中的几种关系(UML——类图),当时侧重的是对这些关系的通俗理解,忽略了图和代码的对应关系。现在在软考中设计模式也是很重要的一部分,基本考点就是将UML图转化成代码实现,前两天听了王聚师哥的讲解,有一种茅塞顿开的感觉。 c#版UML类图中五大关系和代码的对应: 1.实现     实现通常描述的是类和接口的关系,一般都说什么类实现了什么接口。比如说下图中大雁类

李晓洁 廊坊师范学院信息技术提高班 12期 4366

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 263

前端技能树,面试复习第 54 天—— 手写代码:情景题

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 986

UML--类之间的五种关系

UML中的关系(Relationships)主要包括5种:关联关系、聚合关系、依赖关系、泛化关系、实现关系1.关联(Association)关系关联关系是一种结构化的关系,指一种对象和另一种对象有联系。它使一个类知道另一个类的属性和方法。关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另一个类的公共属性和操作。大多数关联应该是单向的,单向关系更...

杨幂等 5036

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

UML五种常见类关系

UML类图中有五种常见的类关系:1.泛化2.依赖 3.关联 4.聚合 5.组合 1.泛化 泛化就是继承,继承就很熟悉了,一般两个类之间硬要使用继承关系的话,一定要保证 A is B,翻译过来也就是子是父。举个例子牙刷、牙缸是洗漱用具,那么牙刷牙缸的类就可以继承洗漱用具类。如果不满足于这种关系,最好使用聚合的方式。 2.依赖 依赖代表的是一种弱耦合关系,常见的比如方法内的局部变量,方法的参数等等临时使用的这种关系。 3.关联 关联代表一种强引用关系,是长久的稳定的关系,两者的关系是平等的。常见的.

鱼儿往上游的博客 1375

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java实现UML中的五种关系

父类调用子类的引用 聚合和组合的区别

郭蕾蕾 努力的包子 2248

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

uml图的五种关系 ...

统一建模语言 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是...

weixin_33932129的博客 385
上一篇: eclipse插件安装出现问题
java20009
博客等级 码龄18年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值