UML类图的依赖和关联详解(含代码) 【C语言】新手实现简单的石头剪刀布人机对战 Codeforces Round #666 (Div. 2)题解ABC Codeforces Round #666 (Div. 2)E Monster Invaders 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条 异或在笔试题中的超神表现 超级码力在线编程大赛初赛 第2场 T1-T4题解 1397D. Stoned Game(博弈) Codeforces Round #666(Div.2)A~D题题解 高性能微服务架构技术选型 阿里饿了么Java4面:(数据结构+框架源码+JVM+分布式) 2020java面试总结 使用ffmpeg提取mp4内部日期重命名文件(需lua) 【剑指Offer】56.2 数组中只出现一次的数字,其他出现3次 JAVA二三事-使用IO+Properties实现动态读取文本信息 排序算法的C语言实现C代码(未更完) RT-Thread 内核学习--信号量的初步使用 【剑指Offer】57.2 和为S的连续正数序列 Qt三方库开发技术:QXlsx介绍、编译和使用 4G DTU模块的作用和功能说明 【Tips】- Wifi模块和4G无线通信 【5G核心网】 Identifiers 身份标识 DPDK支持的硬件:CPU、网卡NIC、加密引擎、基带加速器 如何根据普通ip地址获取当前地理位置 人工智能能力提升指导总结 520了,用32做个简单的小程序 程序员的数学--用贝叶斯定理来推断一个案子 文旅部新规:在线旅游网站不得擅自屏蔽删除评价 不得大数据杀熟 苏宁易购开学季消费大数据:手机以旧换新销量增长299% 做实供电服务“133” 助大数据直上“云”端 思科前程序员离职 5 月后“删虚拟机跑路”,240 万美元打水漂,网友:够狠! 抗疫代码成国博最新藏品 阿里程序员“写代码写进国博挺酷” 国博史上首次收藏代码!它们是阿里程序员写下的抗疫代码 威胜信息发布2020年上半年业绩:物联网产业进入爆发期 营收净利双增长 下月发布会不止有新品折叠屏手机 酷开的物联网家居生态野心初现 史上最全的数据库面试题 数据库面试必看 一个数据库SQL查询的数次轮回 百度智能云正式对外发布百度智能云数据库品牌GaiaDB 数据库三大泛式是什么 电力行业网管需求 IT运维管理解决方案 citrix桌面虚拟化中的运维工具Director SRE运维体系的构建和工作职责划分 运维的核心价值是什么 手游开发定制的全过程详解 开发人员透露:《赛博朋克2077》枪支泛滥 成熟的产品经理如何应对“这个需求不合理” CI/CD管道对开发和运维的重要性 APP开发的流程是怎样的 如何开发一个APP 零基础学web前端开发要学多久 如何系统学习 Web前端要学习哪些内容呢
您的位置:首页 >大数据 >

UML类图的依赖和关联详解(含代码)

众所周知,UML类图分为三种关系:
继承(实现)、依赖、关联。
其中关联又分为:组合和聚合;
共性:都是指两个类之间的耦合强弱,依赖<关联<继承。
首先我们介绍耦合最低的依赖关系。
依赖:
我认为的依赖关系为类A使用了类B的某一个或几个方法,即A uses B.method()。

// 类APublic Class Person(){Public Person(){} Public Void PlayGame() { Game game = new Game; game.LoL(); }}//类BPublib Class Game(){ Public Game(){}; Public Void LOL() {System.out.print("我要打英雄联盟啦"); }} 

由代码可以看出,人会打游戏,通过调用Game的方法。注意:
第一:只有Person类的PlayGame的方法被调用时,Game类才会被实例化,作为一个局部变量来使用,所以Game的生命周期短。
第二:无论Game类除了LOL方法之类,增加其他方法或者成员变量,都不会影响到Person类,所以依赖的耦合性低。

关联
关联表现为一种更深层次的一直依赖关系,比如夫和妻之间的关系。同样地,通过代码来阐述这种关系。

Public Class Husband(){ Public Husband(){}; Wife wife;}Public Class Wife(){ Public wife(){}; Husband husband;}

这段代码中体现了“你中有我,我中有你”的含义在里面,这就是关联(双向关联),一个类成为了另外一个类的属性,这是一种更为紧密的耦合关系。

那么关联和依赖的区别在哪里呢?
通过上面的举例子,大家可能有那么点点感觉了,我在此总结一下:
1:生命周期不同。关联为当类是实例化的时候就产生,而依赖是随着另外一个类的方法调用而产生,随着方法结束而关闭,因此,关联关系比依赖关系生命周期更长。说得更简单一点,大家可以把依赖和关联的区别,理解为局部变量和全局变量的关系。
2:重要性的权重不同。依赖关系为“偶尔”使用的关系,即类A偶尔使用类B的某个方法;而关联关系为"经常"使用的关系,类A将类B作为类A的一个属性(作为我生命中的一部分,你说类B重不重要啊,哈哈哈),会经常用到类B的某些方法或者是成员变量。

关于继承关系我就不在这里解释了,这个大家应该都懂;
关于关联关系的两种更为细化的关系,请看我下一篇博客。

转载请指明原处,尊重大家的时间,谢谢!!!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。