我的UML图有问题,如果你帮助我,我会很高兴。我有像
这样的关系对象A(1)<> ----(0 .. *)对象B
对象B(1)<> ----(0 .. *)对象A
我希望团结他们。我该怎么做?非常感谢。
答案 0 :(得分:2)
你能否定义术语"联合他们"?你到底希望得到什么?一个例子可能有所帮助。
与此同时,我可以尝试猜测并为您提供两种可能的解决方案。也许他们会帮助你改写你的问题,甚至找到解决方案:
在解决方案1中,我刚刚建立了一个描述你们两个人的单一关系。如果对象之间只有一个明确的连接标准,则可以使用此方法。典型的n..m关系。对象A将各自保存相关对象B的集合,反之亦然。
解决方案2实际上有两种不同的方式来关联这些元素,每个元素都是1..n。因此,A持有B的集合,而B持有As的集合,但它们是无关的。
当然,其他多重性和导航性也是可能的,这只是一个给你一个想法的例子。
其中一种情况听起来像你的吗?
更新(第一次评论后):
所以,这是更新的解决方案1:
这是一个聚合,这是一个群组成员关系。它完全适合我在那里的第一个解决方案的描述。成员(B)可以"共享"两组之间(A)和Gruop对其生命周期没有任何特殊控制。
真正的整体关系将使用组合而不是聚合(用黑色钻石视觉描绘,而不是白色)。它的语义是整个对象完全控制所包含对象(部分)的生命。因此,部件不能在多个整体之间共享,如果整个本身被销毁,则必须销毁。
现在你只需要找出哪种情况能够最好地描述你的问题,然后找出这个解决方案并最终微调多重性。
答案 1 :(得分:1)
这是一种可以用UML表示这种情况的方法。
一台服务器可以包含0个或多个函数(即聚合关系)。
每个功能必须属于一个服务器。或者,如果它是分布式功能,那么它可以属于许多服务器。