gpt4 book ai didi

java - 在这种情况下处理多态性的正确方法(JAVA)

转载 作者:行者123 更新时间:2023-11-30 07:29:52 25 4
gpt4 key购买 nike

我得到了一个可以简化为这个场景的任务:

客户需要订购盒子,这些盒子可以有不同的尺寸,不同的尺寸可以订购某些颜色(但不是所有颜色)并且具有不同的质量(但不是所有质量)。

现在我认为解决这个问题的最好方法是使盒子类成为抽象类,并让不同的盒子扩展盒子类以防止重复代码,但是问题来了,我如何检查订单client put in 是有效的,没有在类中存储静态变量(这个类不能有这个颜色等)?

我的解决方案是简单地将静态变量放在类的每个扩展中,然后在不初始化新对象的情况下检查每个类,但这意味着在每个类中重复变量声明。

感谢任何帮助。

最佳答案

除非您愿意拥有一个非常复杂的类层次结构,否则您可能需要考虑使用查找表而不是继承/多态性。它肯定会更容易遵循和维护。

您的查找表的访问器可能类似于

Colors getColors(Size);
Colors getColors(Quality);
Qualities getQualities(Size);
Qualities getQualities(Color);

等等


更新

在这里使用 OOP 原则的唯一明智的方法是,如果您有足够的关于关系的信息来定义层次结构。

例如:

public abstract Shape {
Color color;
public setColor(Color c) { this.color = c}
public abstract draw();
...
}
public Ellipse extends Shape ...
public Circle extends Ellipse ... /* this might be a stretch for mathemeticians */

如果您有关于该任务的更多信息,请发布。

关于java - 在这种情况下处理多态性的正确方法(JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8251195/

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