gpt4 book ai didi

java - 如何通过给定的类图在 Java OOP 代码中正确实现关联?

转载 作者:行者123 更新时间:2023-11-29 04:53:23 24 4
gpt4 key购买 nike

我很困惑如何在 java 代码中正确地实现在 UML 类图上绘制的关联。

假设我们只有两个类(即订单和产品),它们以不同的方式指定关联,这些关联可以绘制为以下情况 A、B 或 C: enter image description here

因为我找到了这个答案:https://stackoverflow.com/a/2293760/3248096谈论(与箭头和导航方向的关联)

我的第一个问题是关于实现 B 与 A 的区别。在 A 实现中,我会写:

public class Order{
private Set<Product> products;
}


public class Product{
private Set<Order> orders;
}

关于 B 实现:

public class Order{
private Set<Product> products;
}


public class Product{
//no references properties back to order from here since no back navigability
...
}

第二个问题是关于C模型的:通过实现来表示从 0 到 4 的有限基数的最佳方法是什么(有吗?)?(一个产品可以有 0 到 4 个父订单没有多大意义。更多的是理解建模与代码)

public class Product{
//Array(4) orders...?
}

最佳答案

一个订单有多个产品,因此将产品集合放入订单似乎是正确的。

另一方面,Product 的实例应该只关联到一个 Order。可能有一种 ProductModel 在几个产品之间共享,但对我来说,一个产品实例应该只链接到一个订单。因此,这里不需要更多的集合,也不需要更多的链接,因为我们已经在订单和这些产品之间建立了链接。

所以 B 实现似乎没问题。

对于第二个问题,C 实现,您应该有一个有 4 个槽的数组或一个无限大小的集合。在这两种情况下,您都必须添加代码来控制添加或删除元素时的状态。例如,在接受添加新产品之前检查订单是否已经有4个产品,并妥善处理。

关于java - 如何通过给定的类图在 Java OOP 代码中正确实现关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34613480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com