让我假装我有两个班级:
public class User {
private Phone defaultPhone;
private List<Phone> allPhones;
}
public class Phone {
}
我应该如何在UML类图中建模User
和Phone
?
特别是:
User
和Phone
之间创建关联链接?
defaultPhone
,一个用于allPhones
)?defaultPhone
类中显示allPhones
和User
属性,还是会多余?答案 0 :(得分:3)
这取决于图表的重点。如果用户和手机之间的关系很重要,并且您想要显示有关手机类的一些详细信息,那么是的,您必须显示这些类之间的关联。否则,您可以将defaultPhone和allPhones显示为User类的属性。 如果您正在绘制关联,那么您将需要关联,每个属性一个。关联角色和多样性将彼此不同。
答案 1 :(得分:1)
我目前看到的答案非常具有描述性和充分性。因此,从我这一方面来说,我只能添加你可能会考虑(在这个特定情况下并不意味着它最好)使用这两个类之间的复合关联,因为User是Phone对象的容器(至少从实现的角度来看)。如果这些是持久对象,并且手机上的用户删除级联,那么我会使用复合。
..对于UML类图参考,我建议这篇文章:Introduction to UML 2 Class Diagrams,一旦我发现它非常有帮助。
答案 2 :(得分:0)
是否有必要创建一个 用户与用户之间的关联链接 电话?
UML图的目的是什么?谁是观众?如果需要这种详细程度,则是必要的。只有你可以决定。
如果您打算将其提供给开发人员,开发人员将重新执行您创建图表所做的所有输入操作,除非这次您最终得到实际工作代码,否则详细信息是必要的。
如果您的受众是需要了解您正在做的事情的商业人士,可能不是。
如果是这样,我应该创建两个关联 链接(一个用于defaultPhone和一个 for allPhones)?
是的,一个是关联链接,另一个是简单的引用。
如果我在中显示这些关联 图,我也应该显示 defaultPhone和allPhones属性 在User类中或将是 冗余?
如果你的图表显示了所有荣耀中的每个属性和每个方法,那么你应该包括两者。
但如果它不仅仅是几个课程,我会说你的图表有可能变得如此详细,以至于它将毫无价值。