【问题标题】:Simple UML behaviours baffle me!简单的 UML 行为让我感到困惑!
【发布时间】:2009-11-18 16:34:29
【问题描述】:

对 UML 和系统设计非常陌生。

我们正处于设计阶段制作类图的阶段,并且正在努力弄清楚如何实现需求。问题来了:

我们有一个由 Name 类和 ContactDetails 类组成的 Person 类。 Contact details 类由 MobileNumber 和 EmailAddress 类组成。

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

我确信这很简单 - 但它让我失望了!

谢谢

【问题讨论】:

  • 顺便说一句:您使用的是哪个 UML 工具?

标签: class uml diagram relationships diagramming


【解决方案1】:

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

【讨论】:

  • 是的。这就是我所说的“添加约束” :-) 问题是您不能直接将其转换为代码。
【解决方案2】:

让我们从简单的开始:

像编写程序一样为您的类建模。创建一个 ContactDetails 类并添加两个属性“MobileNumber”和“EmailAddress”,它们都是对应的类型。 现在创建你的构造方法:

+ContactDetails(mn 手机号码)
+ContactDetails(电子邮件电子邮件地址)
+ContactDetails(mn MobileNumber, email EmailAddress)

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

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

-ContactDetails()

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

就是这样。

【讨论】:

  • 所以,属性在那里,我们有三个构造函数: ContactDetails(MobileNumber, Email);联系方式(电子邮件);联系方式(手机号码);必须调用三个之一来填充属性?我得到它!不太清楚你对约束元素的意思 - 这个? publib.boulder.ibm.com/infocenter/rsmhelp/v7r0m0/…
  • 抱歉,我想我读错了:我需要将 MobileNumber 和 Email 拆分为单独的类。这是我们需要这样做的方式 - 他们需要分开。如何通过类图做到这一点?
  • 属性有类型。像字符串;整数 b;所以 s 在“String”类中实现,b 在“Integer”类中实现。这就是您将它们放在单独的类中的方式,但从您的 ContactDetails 中引用它们。在类图中,您有两个主要关系。这个叫做“有一个……”的关系。继承(泛化)被称为“是……”的关系。
猜你喜欢
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多