类图中类与公有/私有struct、枚举数据类型应使用哪种关联关系
UML类图中类与公有/私有struct、枚举的关联关系选择
核心关系判定标准
- 组合(Composition):强绑定的「部分-整体」关系,部分的生命周期完全依附于整体,整体销毁则部分同步销毁,且部分无法脱离整体被外部单独访问
- 聚合(Aggregation):弱关联的「部分-整体」关系,部分可脱离整体独立存在,生命周期和整体无绑定关系
- 依赖(Dependency):仅「使用」关系,类仅用到该类型的定义,未将其实例作为自身的成员属性持有
不同场景的对应关系
全局/公有struct、枚举
- 若类仅在方法参数、返回值、方法内部局部变量中用到该类型,未持有其实例作为类成员:使用依赖关系,绘制从自定义类指向公有struct/枚举的虚线箭头即可
- 若类持有该类型的实例作为自身成员,且该实例可脱离当前类独立存在(例如由外部传入、类销毁后实例仍可被其他模块调用):使用聚合关系
类内部私有struct、枚举
- 若类持有该私有类型的实例作为自身成员,且该实例随类初始化创建、随类销毁同步销毁,同时完全无法被外部其他类访问:使用组合关系
- 若仅在类内部方法中临时使用该类型,未作为成员存储:使用依赖关系
Enterprise Architect使用小提示
仅类内部使用的私有struct、枚举,可直接设置为类的嵌套分类器,无需单独在类图外层绘制,能有效减少类图的冗余元素。
内容的提问来源于stack exchange,提问作者Anmk
相关产品推荐
相关产品推荐

