UML关系入门
Posted 中中的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML关系入门相关的知识,希望对你有一定的参考价值。
最近在梳理UML关系的时候,发现不少小伙儿对部分细节概念理解不是很清晰,整理了下UML类关系
你将了解:
UML关系分类
关系之间的区别
一. 概述
UML类关系主要分为:实现、泛化、依赖、关联、聚合、组合,总体来说都是类之间的关联关系,是语义级别区分,无法直接从代码层面区分,只是耦合程度不同。耦合强如程度:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
二. 关系区别
依赖 |
关联 |
组合 |
聚合 |
|
概念 |
类A依赖B:类A使用到了类B,该使用关系是具有偶然性的、临时性的、非常弱的,但B类的变化会影响到A | 体现的是两个类之间语义级别的一种强依赖关系;这种关系比依赖更强,一般是长期性的,而且双方的关系一般是平等的 | 组合是关联关系的一种特例,他体现整体与部分间的关系,但整体与部分是不可分 | 聚合是关联关系的一种特例,他体现的是整体与部分的关系,整体与部分之间是可分离的,他们可以具有各自的生命周期 |
生命周期 |
方法被调用时产生 | 实例化时产生,销毁时结束 | 实例化时产生,销毁时结束 | 互不影响 |
关系 |
use,非从属关系 | relation,非从属关系 | contains-a,从属关系 | has-a,从属关系 |
代码表现 |
方法返回值 方法形参 方法局部变量 静态方法 |
属性 关联类 |
属性 | 属性 通常利用构造方法、Setter方法或业务方法的参数注入 |
备注 |
单向,依赖某个类的变化 | 单向或双向(建议转化为单向),对其他对象的引用 | 关注的问题域不同,组合和聚合关系可能相互转化 | 实例不能形成聚合回路 依赖导致(变化类) |
说明:UML关系仅从语义上区别,实际的代码无法直接区分
三. UML 表示方法
泛化(继承)
实现
依赖
关联
1.1 单向关联
1.2 双向关联
1.3 自关联
1.4 多重关联
聚合
组合
参考:
https://www.kancloud.cn/digest/xing-designpattern/143734
https://cloud.tencent.com/developer/article/1176331
书籍:《UML精粹》、《UML for java programer》
以上是关于UML关系入门的主要内容,如果未能解决你的问题,请参考以下文章