如何实现与中间一个 class 的关联 - Person、owns、Car

How to implement associations with one class in the middle - Person, owns, Car

我对下面的 class 图有疑问。 https://www.bilder-upload.eu/bild-3b1169-1545377131.png.html

在练习中我们有 2 classes 之间的关联。比如Person --- Residence 有不同的多重性,单向的和无方向的等等。该图像在我们的讲座中显示为最后。图像表示 "With this (arrow) the implementation is clear"。但对我来说,这并不是那么微不足道。我们以前从未有过这样的实施示例。中间的class"owns"难为我了

我尝试实现它,但我的实现没有意义。如果 class "owns" 不存在,我将能够实现它。我会在 Person 中为多辆车使用容器类型(链表)。并在车内供多人使用。对于每个 class 一个 getter 方法(集合)和 add/remove 方法(双向)。我会提供 2 个不同的 Car 构造函数。 Car(String color, int speed, Person owner) and Car(String color, int speed, LinkedList owners. 在第一个中,我将 Person 添加到 LinkedList,在第二个中,我将 LinkedList 所有者的所有元素添加到 LinkedList对象。还有一些更琐碎的代码。但是对于上面的这张图片,我不知道,希望你能帮助我。

PS:如果您能给我发一份link,其中解释了关联、组合、泛化和UML class 图的实现,我也很高兴。我认为我们的讲座并没有真正提供信息,也没有详细解释事情。 :(

基本上 "owns" class 用于保存既不属于 Person 也不属于 Car 的数据,而是属于 classes 之间的关系(在本例中为 datePurchased ).

这在设计数据在数据库中的保存方式时很有用。 在这种情况下 "owns" 将包含 datePurchased 数据。在实际实现中还需要Person和Car的主键。 因此,例如您想要搜索某个人的汽车,您将使用此人的姓名从 "Owns" table 中搜索它(假设它是唯一的并用作主要 ID)。

因此,通过这种设计,您的 Person 和 Car class 将不包含任何 Collection 或彼此的任何数据,而是将 Person 和 Car 之间的关联数据存储在 Owns class 中。