You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PlantUML中绘制如图所示的UML约束?

在PlantUML中绘制UML约束的方案

针对你需要的这类UML约束(如互斥关联约束、逻辑约束),可以通过以下几种方式在PlantUML中实现:

1. 关联间的互斥约束(如XOR)

如果是多个关联之间的互斥约束,比如示例图中类似的“二选一”关联,有两种常用实现方式:

  • 方式一:在关联附近用标注直接添加约束文本
class Person
class Company
class Car

Person "0..1" -- "1" Company : works at
Person "0..1" -- "1" Car : owns

' 在关联旁标注互斥约束
note left of Person: {xor}
  • 方式二:使用constraint关键字精准绑定关联
class Person
class Company
class Car

Person "0..1" -- "1" Company : works at
Person "0..1" -- "1" Car : owns

constraint XOR_CONSTRAINT between Person and Company, Person and Car: xor

2. 类或关联的自定义逻辑约束

对于类属性、操作的约束,或者类之间的业务逻辑约束,直接在对应元素旁用带大括号的标注即可:

class Order {
    orderId: String
    total: Decimal
    {total > 0}
}

class Customer
Customer "1" -- "*" Order
constraint VALID_OWNER between Customer and Order: 每个订单仅属于一个客户

3. 优化约束的视觉样式

如果需要更贴近示例图的显示效果,可以用skinparam调整标注的样式:

skinparam note {
    BackgroundColor #F5F5DC
    BorderColor #000000
}

class A
class B
class C

A -- B : 关联1
A -- C : 关联2

note top of A: {关联1 xor 关联2}

以上代码可以复现示例图中的UML约束效果,你可以根据实际场景调整约束的位置、文本和样式。

内容的提问来源于stack exchange,提问作者user877329

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:55:20