当前位置: 首页 > news >正文

UML中的多重性详解

一、多重性基本概念

  1. 定义‌:描述类中元素的数量范围或确切数量‌
  2. 表示方式‌:用[最小值]..[最大值]格式写在关联线上方‌

二、常见多重性表示

  1. 单一实例‌:

    • 1:表示必须有且仅有一个实例
    • 1..1:同1(UML 2.0后不常用)
    • 示例:[人体]----[心脏] (1)
  2. 可选实例‌:

    • 0..1:表示可以有0个或1个实例
    • 示例:[汽车]◆----[备胎] (0..1)
  3. 多个实例‌:

    • *0..*:表示可以有0个或多个实例
    • 1..*:表示至少有1个实例
    • 示例:[文章]----[段落] (*)

三、特殊多重性表示

  1. 无限制‌:

    • *:等同于0..*,表示实例数量无上限‌
    • 示例:[大学]----[课程] (*)
  2. 精确数量‌:

    • 直接写数字表示确切数量
    • 示例:[团队]----[成员] (5)表示固定5个成员

四、多重性应用场景

  1. 组合关系‌:

    • 强所有权关系,部分不能独立存在
    • 示例:[汽车]◆----[发动机] (1)
  2. 聚合关系‌:

    • 弱所有权关系,部分可以独立存在
    • 示例:[部门]◇----[员工] (1..*)
  3. 关联关系‌:

    • 表示类之间的普通关联
    • 示例:[学生]----[课程] (0..10)(学生最多选10门课)

五、多重性书写规范

  1. 位置‌:写在关联线上方或靠近类名处‌

  2. 格式‌:

    • 简单多重性:(1)(0..1)
    • 复杂多重性:{3,5}(表示3或5个实例)
  3. 复合多重性‌:

    • 可同时指定不同范围
    • 示例:{2,4}..10表示2到4个或最多10个

六、多重性在代码中的体现

// 1对多关系
public class Department {
private List<Employee> employees = new ArrayList<>(); // 1..*
}
// 0..1关系
public class Car {
private Optional<SpareTire> spareTire; // 0..1
}

七、注意事项

  1. 组合关系通常使用11..*,表示强所有权‌
  2. 聚合关系常用0..*1..*,表示弱所有权‌
  3. 多重性必须与关系类型(组合/聚合/关联)配合使用
http://www.dtcms.com/a/292765.html

相关文章:

  • 【QT常用技术讲解】QSystemTrayIcon系统托盘
  • cuda做lut 去畸变示例
  • APT32F1732RBT8爱普特微电子 32位MCU国产芯片 智能家居/工业控制 首选
  • 【Word Press基础】创建一个自定义区块
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(7):自動詞 & 他動詞
  • Matlab学习笔记:矩阵基础
  • 鸿蒙卡片开发保姆级教程
  • 【Kubernetes】集群外使用 kubectl 命令连接集群
  • 数据结构 之 【排序】(直接选择排序、堆排序、冒泡排序)
  • LS-DYNA | 载荷与边界条件
  • 内网穿透利器:基于HTTPHTTPS隧道的代理工具深度解析
  • Monkey OCR简单介绍
  • 为什么要微调大语言模型
  • 高等数学-矩阵知识
  • rocky9-zabbix简单部署
  • 如何实战适配政务服务智能体中台?
  • 中烟创新灯塔大模型应用开发平台入选工信部“政务大模型应用典型案例”
  • 【Android】xml和Java两种方式实现发送邮件页面
  • 在Python中操作Word
  • 嵌入式学习-土堆目标检测(3)-day27
  • Python 综合运用:MD 转 DOCX 工具
  • 上网行为管理知识
  • 054_TreeMap / LinkedHashMap
  • 小程序上传头像解析
  • numpy库 降维,矩阵创建与元素的选取,修改
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘Cython’问题
  • Protobuf学习
  • SDC命令详解:使用set_min_library命令进行约束
  • fuse低代码工作流平台概述【已开源】-自研
  • AWS: 云上侦探手册,七步排查ALB与EC2连接疑云