如何在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
相关产品推荐
相关产品推荐

