如何在UML中显示以下类及其关联?

时间:2011-06-05 12:39:08

标签: java uml

让我假装我有两个班级:

public class User {
 private Phone defaultPhone;
 private List<Phone> allPhones; 
}

public class Phone {
}

我应该如何在UML类图中建模UserPhone

特别是:

  • 是否有必要在UserPhone之间创建关联链接?
    • 如果是,我应该创建两个关联链接(一个用于defaultPhone,一个用于allPhones)?
    • 如果我在图表中显示这些关联,我是否还应在defaultPhone类中显示allPhonesUser属性,还是会多余?

3 个答案:

答案 0 :(得分:3)

这取决于图表的重点。如果用户和手机之间的关系很重要,并且您想要显示有关手机类的一些详细信息,那么是的,您必须显示这些类之间的关联。否则,您可以将defaultPhone和allPhones显示为User类的属性。 如果您正在绘制关联,那么您将需要关联,每个属性一个。关联角色和多样性将彼此不同。enter image description here

答案 1 :(得分:1)

我目前看到的答案非常具有描述性和充分性。因此,从我这一方面来说,我只能添加你可能会考虑(在这个特定情况下并不意味着它最好)使用这两个类之间的复合关联,因为User是Phone对象的容器(至少从实现的角度来看)。如果这些是持久对象,并且手机上的用户删除级联,那么我会使用复合。

..对于UML类图参考,我建议这篇文章:Introduction to UML 2 Class Diagrams,一旦我发现它非常有帮助。

答案 2 :(得分:0)

  

是否有必要创建一个   用户与用户之间的关联链接   电话?

UML图的目的是什么?谁是观众?如果需要这种详细程度,则是必要的。只有你可以决定。

如果您打算将其提供给开发人员,开发人员将重新执行您创建图表所做的所有输入操作,除非这次您最终得到实际工作代码,否则详细信息是必要的。

如果您的受众是需要了解您正在做的事情的商业人士,可能不是。

  

如果是这样,我应该创建两个关联   链接(一个用于defaultPhone和一个   for allPhones)?

是的,一个是关联链接,另一个是简单的引用。

  

如果我在中显示这些关联   图,我也应该显示   defaultPhone和allPhones属性   在User类中或将是   冗余?

如果你的图表显示了所有荣耀中的每个属性和每个方法,那么你应该包括两者。

但如果它不仅仅是几个课程,我会说你的图表有可能变得如此详细,以至于它将毫无价值。