我正在阅读 Martin Fowler 的“UML distilled”,在阅读关联类的过程中,我得到了这句话:
您从关联类中获得什么好处来抵消您必须添加的额外符号
记住?关联类增加了一个额外的约束,因为它只能有一个实例
任何两个参与对象之间的关联类。
然后有一个例子,但我想确保我做对了,例如,如果我得到:
--------- ---------
| |* *| |
| CLASS A |----------| CLASS B |
| | | | |
--------- | ---------
|
______|______
| |
| |
| CLASS C |
| |
|_____________|
Run Code Online (Sandbox Code Playgroud)
那么,对于每一对不同的(A 的实例,B 的实例),只存在一个类 C 的实例。
因此,如果我采用 A1,A2,B1,B2-instances 那么对于 (A1,B1) (A1,B2) (A2,B1) (A2,B2) 我会得到 4 个 C 实例,仅此而已?
这是正确的,无意在这里混合概念,但它类似于数据库中的表,其中:
A 1-* C
B 1-* C
Run Code Online (Sandbox Code Playgroud)
其中C可以看作是打破A和B之间多对多关系的结果。
对于 B 上的每一行只能存在 1 行,并且只能存在 1 行 C,并且该特定行(在 C 上)只能与 A 上的 1 行相关。因此,对于 A 和 B 上的每对唯一行只能存在 1 行C 或无,因为 * 表示 0 或更多。