DM1*_*M14 6 uml class-diagram object-diagram
我对在 UML 中如何正确使用 {XOR} 约束有一些疑问。
我理解它是如何以两种不同的方式工作的。哪一个是正确的?
xor 约束适用于关联。(或者:类型 A 的对象可能与类型 C 的 1 个对象相关联;或者:类型 A 的对象可能与类型 B 的零个或 1 个对象相关联;或者:对象 A 可以单独存在,因为我们有 [ 0..1] 靠近 B)。
xor 约束适用于链接(或者:类型 A 的对象必须与类型 C 的对象正好关联;或者:类型 A 的对象必须与类型 B 的对象正好关联)。
多年后我必须修复这个答案(尽管我得到了很多赞成)。
这{XOR}意味着该类A必须与 或 有关联B,C但不能与两者都有关联,或者没有。这意味着在一种情况下你有,A * - 0..1 B而在另一种情况下它是A 0..1 - 1 C. 两者本身都是法律结构。只有在这里它A才会扮演两个独特的角色。
这是一个纯粹的学术结构,因此它在实践中的含义是完全开放的。如果来自教程/课程的此类示例具有一些现实世界的联系,那将更有意义(也更有帮助)。
旧(错误)答案
这完全是错误的(或谜题)。您只需要一个C与A. 但是,由于XOR您可能无法关联B。这意味着:这种B关系始终存在0,您也可以将其搁置一旁。
也许(!)有人把多样性放在了错误的一边。如果你交换它们,这将是有意义的。如果您使用真实姓名而不是 A、B、C,您可以从上下文中猜测。