如何在PlantUML中绘制这样的约束

发布于 2022-11-22 22:00:28
PlantUML技术1
要做到这一点并不容易,因为PlantUML没有给出允许关联行的语法。你能做到的最好就是:

您可以通过关联两个元素并创建一对相同的元素来实现这一点,例如,(Account, Person).This创建一个包含两个与点相关的线段的复合元素。然后,可以将这两对...关联起来,以获得虚线,并通过添加尾随: {xor}来命名这种关系。
@startuml
skinparam style strictuml
class Account
class Person
class Corporation
Account -- Person
Account -- Corporation
(Account,Person) ... (Corporation,Account) : {xor}
@endumlPlantUML技术2
另一种选择是使用注释框来包含约束。顺便说一句,这是在将约束附加到元素时通常使用的符号。然后,您可以将配对技术与附加在每对上的注释结合起来(法语中的源:本教程 ):
@startuml
skinparam style strictuml
class Account
class Person
class Corporation
Account -- Person
Account -- Corporation
note "{xor}" as N #white
(Account,Person) .. N
N .. (Account,Corporation)
@enduml UML设计改进
在现实中,这种约束应该尽可能地最小化,因为它们通常只隐藏一个缺失的抽象。因此,我不使用{xor},而是考虑:

顺便说一句,正如这里所解释的那样,多重继承关系的分组也是通过配对来实现的。
https://stackoverflow.com/questions/74537826
复制相似问题