Class 简单的UML行为让我困惑!

Class 简单的UML行为让我困惑!,class,uml,diagram,relationships,diagramming,Class,Uml,Diagram,Relationships,Diagramming,对UML和系统设计非常陌生 在设计阶段,我们正处于绘制类图的阶段,正在努力找出如何实现需求。问题是: 我们有一个Person类,它由一个Name类和一个ContactDetails类组成。联系人详细信息类由MobileNumber和EmailAddress类组成 我将如何建模我的类图,以便ContactDetails必须具有MobileNumber或EmailAddress或两者兼有 我相信这很简单,但它把我扔了 谢谢让我们从简单开始: 像编写程序一样对类进行建模。创建一个ContactDeta

对UML和系统设计非常陌生

在设计阶段,我们正处于绘制类图的阶段,正在努力找出如何实现需求。问题是:

我们有一个Person类,它由一个Name类和一个ContactDetails类组成。联系人详细信息类由MobileNumber和EmailAddress类组成

我将如何建模我的类图,以便ContactDetails必须具有MobileNumber或EmailAddress或两者兼有

我相信这很简单,但它把我扔了

谢谢

让我们从简单开始:

像编写程序一样对类进行建模。创建一个ContactDetails类并添加两个属性“MobileNumber”和“EmailAddress”,这两个属性都是相应的类型。 现在创建构造函数方法:

+联系人详细信息(mn MobileNumber)
+联系人详细信息(电子邮件地址)
+联系人详细信息(mn手机号码、电子邮件地址)

现在:如何在代码中添加所需的约束

通过将空构造函数设置为私有?这样做

-联系人详细信息()

通过检查参数是否为空?只需添加一个约束元素,它基本上只是类中的一个文本注释

就这样


此外,如果关联是可选的,则它不是组合。它最多是一个聚合,甚至是一个简单的关联,如我在这个图中所示。

因此,属性在那里,我们有三个构造函数:ContactDetails(MobileNumber、Email);联系方式(电子邮件);联系人详细信息(MobileNumber);必须调用其中一个来填充属性?我明白了!不太清楚您关于约束元素的意思是什么-这个?对不起,我想我误读了:我需要把MobileNumber和Email分成不同的类。我们需要这样做——他们需要分开。如何通过类图实现?属性有类型。像弦乐;整数b;因此,s在类“String”中实现,b在类“Integer”中实现。这就是如何将它们放在单独的类中,但从ContactDetails中引用它们。在类图中,有两个主要关系。这一个叫做“有…”关系。继承(泛化)被称为“是一种…”关系。顺便问一下:你在使用哪个UML工具?是的。这就是我所说的“添加约束”:-)问题是您无法将其直接转换为代码。