如何从uml做关系0..1

How to do the relationship 0..1 from uml

我想知道DibujoSVG和Lienzo的关系怎么做。 我已经完成了所有其他关系,但我不知道该怎么做。 谢谢

0..1 关系意味着 "optional" - ClassA 具有对 ClassB 的引用,但此引用可能为空。

一个额外的并发症是哪一方拥有关系,所以你可以这样:

class Lienzo {

}

class DibujoSVG {
    private Lienzo lienzo;
}

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

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

class DibujoSVG {
}

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

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