我知道
alt
相当于 UML 中的 if else
,但是如何表示更复杂的条件,例如:
if (condition1 && condition2) else condition3
是
[condition1 == true]&&[condition2==true]
吗?
组合片段(例如
alt
)的操作数中的守卫是在一对方括号之间表达的交互约束。因此,您的情况应该处于一对括号之间。
UML 对于如何指定此类约束提供了充分的灵活性:
用户定义的约束的规范通常表示为某种语言中的文本字符串,其语法和解释由该语言定义。在某些情况下,形式语言(例如 OCL)或编程语言(例如 Java)可能是合适的,在其他情况下可能使用自然语言。
换句话说,有了防护支架
[condition1 && condition2]
就完全没问题了。如果您更喜欢 OCL 语法,那就是 [condition1 and condition2]
。