Java/JavaFX Class 由另一个 Class 的实例组成
Java/JavaFX Class Made of Instances of Another Class
我确定已经有了答案,我只是不知道如何用合适的搜索词来描述我需要做的事情。
假设我正在尝试制作一个程序来处理独特的木头(每块木头都有一个 ID)以及由这些独特的木头制成的 tables 的销售。我有两个 classes:WoodPiece 和 Table。
我应该如何创建 Table class 以便它可以包含 Table 的实例,其中列出了独特的木块,以便您可以添加和删除木块直到点table实际上是制造和销售的?现在我想我使 Table 成为一个 subclass WoodPiece,它只有一个 ArrayList of woodPieces。
我不擅长 Java 所以我想在浪费大量时间倒退之前确保我有正确的想法。你知道的任何关于这方面的教程都会很棒。我正在为我的程序使用 JavaFx。
我会使用合成来构造 Table class。 Table 不是 WoodPiece,而是包含 WoodPieces。以后一个Table可能会有桌布或人等
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。此外,我假设您不关心 woodPieces 的顺序,因为 Table 确实没有组成它的木材的自然顺序。
进一步阅读:https://en.wikipedia.org/wiki/Composition_over_inheritance
根据您的描述,我了解到我 table 仅由独特的零件制成,不可能与其他 table 一起制成 table。因此,您只需将 WoodPiece 列表添加到 table class 以及添加和删除方法。
如果你想与其他 table 一起制作一个 table 你应该首先创建一个接口(我们称之为 TablePiece)和两个 Table 和 WoodPiece 必须实现它并且 Table 必须有一个 TablePiece 的列表。在下图中,组件将是 TablePiece、Leaf WoodPiece 和 Composite Table。
我确定已经有了答案,我只是不知道如何用合适的搜索词来描述我需要做的事情。
假设我正在尝试制作一个程序来处理独特的木头(每块木头都有一个 ID)以及由这些独特的木头制成的 tables 的销售。我有两个 classes:WoodPiece 和 Table。
我应该如何创建 Table class 以便它可以包含 Table 的实例,其中列出了独特的木块,以便您可以添加和删除木块直到点table实际上是制造和销售的?现在我想我使 Table 成为一个 subclass WoodPiece,它只有一个 ArrayList of woodPieces。
我不擅长 Java 所以我想在浪费大量时间倒退之前确保我有正确的想法。你知道的任何关于这方面的教程都会很棒。我正在为我的程序使用 JavaFx。
我会使用合成来构造 Table class。 Table 不是 WoodPiece,而是包含 WoodPieces。以后一个Table可能会有桌布或人等
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。此外,我假设您不关心 woodPieces 的顺序,因为 Table 确实没有组成它的木材的自然顺序。
进一步阅读:https://en.wikipedia.org/wiki/Composition_over_inheritance
根据您的描述,我了解到我 table 仅由独特的零件制成,不可能与其他 table 一起制成 table。因此,您只需将 WoodPiece 列表添加到 table class 以及添加和删除方法。
如果你想与其他 table 一起制作一个 table 你应该首先创建一个接口(我们称之为 TablePiece)和两个 Table 和 WoodPiece 必须实现它并且 Table 必须有一个 TablePiece 的列表。在下图中,组件将是 TablePiece、Leaf WoodPiece 和 Composite Table。