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. 多重性必须与关系类型(组合/聚合/关联)配合使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值