【问题标题】:What are the differences between an arrow and a closed arrow in UML to C#?UML 到 C# 中的箭头和闭合箭头有什么区别?
【发布时间】:2015-02-05 17:05:15
【问题描述】:

例如,我拥有一个类 Sensor、一个类 Control 和一个类 Rooksensor。我有一个从 Control 到 Sensor 的开放箭头和一个从 Rooksensor 到 Sensor 的闭合箭头。这是 UML 图的样子: 我做的一个小小的猜测是,在 Rooksensor 类中是这样的:

Rooksensor: Sensor

在传感器类中:

Control control1 = new Control();
Control control2 = new Control();

我只想知道箭头是什么意思,如果有人能给我一个很好的解释他们的意思以及我应该如何实现它,我会很高兴。

【问题讨论】:

标签: c# uml associations


【解决方案1】:

“关闭”箭头是继承Rooksensor 派生自 Sensor,所以它有继承箭头。

“打开”箭头是关联。这只是表明Control知道关于Sensor。它知道这一点,因为它的方法之一接受一个作为参数。

您的最后一段代码(Sensor 创建了一些Controls)与图表并不真正吻合。如果 Sensor 持有 Control 对象,则它与它具有聚合/组合关系,而您的图表中没有显示。

【讨论】:

  • 感谢您的解释。所以我实际上必须这样做: Sensor sensor1 = new Sensor();和传感器传感器2 =新传感器();因为它制造了 2 个传感器?
  • @user3171107 该关联的多重性仅表明它被引用了多少次。 您根本不应该通过图表来实例化它们。如果您实例化,您几乎会自动拥有聚合/组合关系,而不是简单的关联。
  • 我只会在抽象域建模中使用聚合,而不是在涉及类时。对于代码类关联非常好。你可以用角色来装饰它们。但这只是与具有目标类类型的属性不同的呈现。它可能会增加可读性。再次YMMV
猜你喜欢
  • 2018-08-26
  • 2014-03-11
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
相关资源
最近更新 更多