我有以下两个类,它们仅通过公共属性链接:
如何对这些类之间的关系进行建模,知道
testID
中的 ErrorMessage
和 id
中的 Test
是相同的(意味着它们代表相同的值)
哪种 UML 关系最能描述这种情况?
如果
Test::id
是唯一标识 Test
的属性,则关系将是与 1
一侧的多重性 Test
的关联(即每个 ErrorMessage 实例与一个测试相关联)。由于没有什么可以阻止多个不同的 ErrorMessage
实例引用相同的 TestId
,因此您将 * 在 ErrorMessage 旁边。
现在看来,
ErrorMessage
生命周期与Test
实例有关:要创建ErrorMessage
,您需要拥有id
。相反,由于 id 不是可选的(重数 0..1),我们可以假设没有测试实例它就不能存在。然后,您可以使用复合聚合,在测试一侧放置一个黑色菱形。