【问题标题】:How to do the relationship 0..1 from uml如何从 uml 做关系 0..1
【发布时间】:2016-01-31 16:28:35
【问题描述】:

我需要知道如何处理 DibujoSVG 和 Lienzo 之间的关系。 我已经完成了所有其他关系,但我不知道如何处理这一关系。 谢谢。

【问题讨论】:

  • 与其他关系有什么不同?例如,在Coordonada 和我们看不到的顶部之间。什么困扰你?
  • 我只需要DibujoSVG和Lienzo的关系。只能在 DibujoSVG 中创建 Lienzo 吗?不同的是,这个箭头上只有 0..1 了。

标签: java uml relationship


【解决方案1】:

0..1 关系表示“可选” - ClassA 有对 ClassB 的引用,但该引用可能为空。

一个额外的复杂因素是哪一方拥有关系,所以你可以这样:

class Lienzo {

}

class DibujoSVG {
    private Lienzo lienzo;
}

但您也可以让 Lienzo 拥有该关系,以及 DibujoSVG 实例从不共享的业务规则(但未由语言严格执行):

class Lienzo {
    // Never shared.
    private DibujoSVG dibujoSvg;
}

class DibujoSVG {
}

由于这仍然存在给定 DibujoSVG 实例未链接到 Lienzo 实例的可能性,因此它仍在实现 0..1 多重性。

根据我的经验,第二种是更常用的方法,因为您通常需要在对象图中向外导航而不是向内导航。

【讨论】:

  • 谢谢 - 如果您发现这已经回答了您的问题,您能否将其标记为已接受以关闭问题?
猜你喜欢
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 2013-10-28
相关资源
最近更新 更多