答案 0 :(得分:1)
这不是非法的,虽然有点语言特定。显然它是纯文本(因为在表达式中有一个多余的“)”。如果您想使这种语言独立,您可以这样设计:
请注意,点表示角色是另一侧的类中的拥有属性。所以我也提取了conditions
并将其放入与String
的关联中。
答案 1 :(得分:1)
有几种方法可以做到这一点,具体取决于您想要表达的内容。如果你想保留模板,那么就有UML语法来支持它(一个覆盖在行的右上角的虚线框允许你表示模板参数化)。因此,您可以通过这种方式指定List模板类,然后可以将其作为“actions”的类型进行参数化(在UML中,此类型称为“绑定元素”)。有几种方法可以表示绑定元素,但UML确实允许使用Foo<T>
的c ++语法。因此actions: List<string>[0..*]
之类的内容会指示属性“操作”的多个实例,每个属性都是List<string>
。您也可以使用actions: List<List<string>>
的方式指定操作,这是一个“操作”属性。另一种方法是定义一个封装数组结构逻辑的常规类,并用它键入“actions”。我还没有看到像actions: string[0..*][0..*]
这样的语法,但是我会查看它并找出UML是否支持它。