简单的面向对象建模

时间:2014-03-22 13:23:53

标签: java

我有两节课。食物和膳食。

食物包含蛋白质,碳水化合物,脂肪和卡路里的变量。它也为这些获得了吸气剂/安装者。

用餐包含一个ArrayList,其中包含该特定膳食中的所有食物。它还包含我在同一类中通过方法获得的总蛋白质,碳水化合物,脂肪和卡路里的变量。

以上都是我想的,但是当我想引入一个变量来存储每种食物的克数时,我无法决定我应该把这个变量放在哪个类中。

把它放在Food类中感觉不对,因为我认为数量本身并没有任何关系。在膳食课上让它变得生动感觉更合适。

此时我的问题是,虽然感觉不对,但很容易在食物中添加金额变量。另一方面,我不知道将它放在Meal类中的哪个位置,因为在该类中,所有类型的食物都位于ArrayList中。

希望这是有道理的:)

2 个答案:

答案 0 :(得分:0)

为什么没有名为成分的第三类

public class Ingredient
{
  Food _food;
  Double _amount;
  public Ingredient(Food food, Double amount)
  {
    this._food = _food;
    this._amount = amount;
  }
}

in in meal有一个ArrayList of Ingredient,而不是Food

答案 1 :(得分:0)

您应该引入第三个类FoodQuantity

public class FoodQuantity {
    private int grams;
    private Food food;

    // constructor, getters and other methods omitted
}

并在您的用餐中列出该课程的实例:

public class Meal {

    private List<FoodQuantity> elements = new ArrayList<>();

    public addFood(Food food, int grams) {
        elements.add(new FoodQuantity(food, grams));
    }

    ...
}
相关问题