我确信已经有了答案,我只是不知道如何用良好的搜索条件来描述我需要做的事情。
假设我正在尝试制作一个程序来处理独特木块的销售(每个都有一个ID)以及由这些独特木块制成的桌子。我有两个类:WoodPiece和Table。
我应该如何创建Table类,以便它可以包含列出了独特木片的Table实例,以便您可以添加和删除片段,直到实际制作和销售该表为止?现在我想我将Table作为子类WoodPiece,它只有一个woodPieces的ArrayList。
我不擅长Java,所以我想在我浪费一些时间倒退之前确保我有正确的想法。任何你知道的关于这个的教程都会很棒。我正在使用JavaFx作为我的程序。
答案 0 :(得分:1)
我将使用合成构造Table类。表不是WoodPiece,而是包含WoodPieces。将来,桌子可能有桌布或人等等。
class Table
{
private Map<String, WoodPiece> woodPieces = new HashMap<>();
public Table ()
{
// constructor
}
public void addWoodPiece (WoodPiece wp)
{
woodPieces.put(wp.getID(), wp);
}
public WoodPiece removeWoodPiece (String id)
{
return woodPieces.remove(id);
}
}
注意:由于您的WoodPiece对象具有与之关联的唯一ID,因此我选择了地图而不是List。此外,我假设你不关心woodPieces的顺序,因为Table真的没有构成它的木材的自然排序。
进一步阅读:https://en.wikipedia.org/wiki/Composition_over_inheritance
答案 1 :(得分:0)