UML关联关系示例与说明例图1例如2UML 关联关系一、什么是关联关系关联Association是 UML 类图中最基础、最常用的关系表示两个或多个类之间存在长期、稳定的语义联系是一种结构关系。简单理解不是临时调用那是依赖不是整体与部分那是聚合/组合就是长期持有、互相知道、可以互相访问的关系典型特征一个类中以成员变量的形式持有另一个类的对象关系是长期存在的不是方法执行完就消失可以有导航方向、多重度基数、角色名等二、关联关系的语法与图示图形一条实线连接两个类箭头无箭头双向关联实心箭头单向关联A 知道 BB 不知道 A多重度数量1有且仅有1个0..10个或1个0..*/*0个或多个1..*至少1个角色名线上标注类在关系中的角色三、典型示例软考最爱考1.学生 — 老师一个学生可以被多个老师教一个老师可以教多个学生代码体现Student 里有 ListTeacher 里有 List关系双向多对多关联2.订单 — 订单明细一个订单包含多个明细一个明细只属于一个订单关系一对多关联3.用户 — 账号一个用户对应一个账号一个账号对应一个用户关系一对一关联4.单向关联示例汽车 Car 知道 引擎 Engine引擎不需要知道汽车Car 类中有 Engine 成员变量关系单向关联四、怎么判断是不是关联关系做题技巧满足下面任意一条大概率是关联类 A长期持有类 B 的实例成员变量描述是拥有、属于、使用、管理、对应、包含非整体部分关系稳定不是临时方法调用不是继承泛化、不是实现、不是整体部分聚合组合排除法只是临时用一下、方法参数/局部变量 →依赖子类继承父类 →泛化接口实现 →实现整体与部分 →聚合 / 组合剩下稳定持有 →关联五、软考怎么考高频形式1.选择题给出描述选关系题干类A中包含类B的对象作为成员变量长期存在选项依赖、关联、聚合、组合、泛化答案关联2.类图题识别连线含义给出类图问这条实线是什么关系1…* 代表什么单向箭头代表什么考点实线关联箭头导航方向数字多重度3.区分易混关系必考对比软考最喜欢让你区分关联 vs 依赖 vs 聚合 vs 组合关系关键字代码特征强弱依赖使用、临时方法参数、局部变量弱关联持有、长期成员变量中聚合整体-部分可分离成员变量生命周期独立较强组合整体-部分不可分离成员变量同生共死最强口诀临时调用是依赖长期持有是关联整体部分看聚合同生共死是组合。4.填空题/简答题写出 UML 中关联关系的表示符号解释多重度 1、*、0…1 的含义根据业务场景画出关联关系并标注多重度关联关系练习题第1题UML 类图中表示关联关系的图形是A. 虚线B. 普通实线C. 带空心菱形的实线D. 带实心菱形的实线第2题关联关系的核心含义是类与类之间存在A. 临时调用关系B. 长期稳定的结构联系C. 继承扩展关系D. 整体与部分关系第3题一个班级包含多名学生一名学生只属于一个班级该关系是A. 一对一关联B. 一对多关联C. 多对多关联D. 依赖关系第4题UML 中多重度标记0..*表示A. 有且仅有1个B. 0个或1个C. 0个或多个D. 至少1个第5题学生与课程之间学生可选多门课课程可被多名学生选属于A. 一对一关联B. 一对多关联C. 多对多关联D. 聚合关系第6题关联关系中单向关联与双向关联的区别主要是A. 生命周期是否一致B. 是否可以互相访问导航C. 是否为整体部分关系D. 是否使用箭头参考答案一、选择题答案BBBCCB二、简答题710题第7题简述关联关系的主要特征。第8题请举例说明什么是一对一关联并写出一组典型业务场景。第9题请说明“用户与订单”之间的关联类型并标注合理多重度。第10题简述如何从语义描述中判断一个关系是否为关联关系。二、简答题答案第7题类与类之间长期、稳定的语义联系属于结构关系而非临时调用在类图中用实线表示可带箭头表示导航方向可标注多重度表示实例间的数量对应关系。第8题一对一关联两个类的实例之间一一对应互相唯一匹配。典型场景用户与身份证号、人与护照、员工与工号。第9题关联类型一对多关联。多重度一个用户可以有多个订单一个订单只属于一个用户。即用户 1 ←→ 订单 0…* 或 *。第10题描述体现为长期持有、归属、对应、管理等稳定关系不是临时使用、临时调用不是继承、实现、整体与部分关系类之间存在持续可访问的结构联系即可判定为关联关系。一句话总结关联 两个类长期稳定持有对方用实线表示常以成员变量存在软考主要考识别、多重度、与依赖/聚合/组合的区分。