我有两节课。食物和膳食。
食物包含蛋白质,碳水化合物,脂肪和卡路里的变量。它也为这些获得了吸气剂/安装者。
用餐包含一个ArrayList,其中包含该特定膳食中的所有食物。它还包含我在同一类中通过方法获得的总蛋白质,碳水化合物,脂肪和卡路里的变量。
以上都是我想的,但是当我想引入一个变量来存储每种食物的克数时,我无法决定我应该把这个变量放在哪个类中。
把它放在Food类中感觉不对,因为我认为数量本身并没有任何关系。在膳食课上让它变得生动感觉更合适。
此时我的问题是,虽然感觉不对,但很容易在食物中添加金额变量。另一方面,我不知道将它放在Meal类中的哪个位置,因为在该类中,所有类型的食物都位于ArrayList中。
希望这是有道理的:)
答案 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));
}
...
}