具有多重UML的单向关联

时间:2018-05-16 16:28:38

标签: uml associations multiplicity

我试图理解这个案例:

 ---------                ---------
|         |0..*      0..*|         |
|CLASS  A |------------->| CLASS B |
|         |              |         |
 ---------                ---------


 ---------                ---------
|         |1..*      0..*|         |
|CLASS  A |------------->| CLASS B |
|         |              |         |
 ---------                ---------

我从第一个例子中理解的是: A类中的一个对象与B类中的零个或多个对象有关系。这是有道理的,因为A类知道B类。但另一个多重性究竟意味着什么呢? B级不知道A类,因此在那里放置多重性似乎没有意义。

第二个例子也是如此。

如果有人有一个很好的解释,我会非常感激。

问候, 约翰

3 个答案:

答案 0 :(得分:0)

B不了解A的事实不会阻碍多个A连接到B。例如,将B作为地址。 A公司知道许多地址。但后来这些公司将地址交给其他公司 - B并不知道这一点。

答案 1 :(得分:0)

这意味着B的实例可以通过您的关联被A的许多实例作为目标。

但通常我没有为uml关联设置不可导航角色的多重性,因为它不用于代码生成(通常没有这种多重性信息的实现......)。

答案 2 :(得分:0)

事实上,它确实有意义,因为它表达了对(数据)模型的约束。

购买在[1..*]方面将多重性设置为A,您声明应始终存在至少一个或多个与{B}有关系的A实例。

在编写(或生成)业务代码时,通常不会强制执行此约束,但这只是UML模型的一个应用程序。

它也可以作为功能文档,我非常感兴趣的是双方的多重性。

在设计数据库时,此类信息也至关重要。它将确定FK字段是否可以为空。