与多重 UML 的单向关联

One-Way Association with Multiplicity UML

我想了解这个案例:

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


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

我从第一个例子中了解到的是: 来自 Class A 的一个对象与来自 Class B 的零个或多个对象有关系。这是有道理的,因为 Class A 知道 Class B。但是另一个对象到底是什么多重性是什么意思? Class B 不认识 Class A,所以在那里放一个多重性似乎没有意义。

第二个例子也是如此。

如果有人有好的解释,我将不胜感激

您好, 约翰

B 不知道 A 的事实不会妨碍多个 A 连接到 B。例如以 B 为地址。 A 公司知道一些地址。但随后这些公司将地址交给其他公司 - B 对此一无所知。

这意味着通过您的关联,B 的实例可以成为 A 的多个实例的目标。

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

事实上它是有道理的,因为它表达了对您的(数据)模型的约束。

通过在 A 侧将重数设置为 [1..*],您声明应该始终至少有 1 个或多个 A 实例与 B 有关系。

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

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

这类信息在设计数据库时也很重要。它将确定 FK 字段是否可为空。