OOP:是否应该有类别类以及如何处理测量单位?

时间:2017-05-25 11:15:18

标签: php oop

这是我的第一个更大的项目,所以我想做正确的事情。 我打算制作我后来想要分组或过滤的产品类。

对象示例

product {
  name: 'chicken breast';
  amount: 100g;
  energyVal: {
   protein : 10g;
   carbs: 20g;
   fat: 10g;
}

问题1:

如果食物是纯素食,素食,肉类等,我希望将它们分组。

问题:

产品类别应该是产品对象中的energyVal属性,还是应该创建另一个类如productCategory / productList / veganProduct,然后应该如何。我不确定的原因是因为我认为通过所有对象进行预测并检查属性是否等于纯素将花费很长时间并且似乎不是一个非常好的做法。如果我错了,请纠正我

问题2:

该项目应在全球范围内提供,这意味着应考虑使用不同的测量单位和语言。

问题: 因为语言可能没有必要拥有自己的课程,但测量单位呢?

最后,我们也欢迎有关规划更大的OOP项目的参考和链接或示例,这可以回答我的问题。

1 个答案:

答案 0 :(得分:1)

"问题2"是最简单的:您以SI单位(公制)存储所有测量值,并在您根据用户本地化选项生成响应时进行转换。

关于"问题1" ......好吧......我认为,每个产品都属于多个类别(SQL方面多对多)。我会为此使用一个单独的类。 APU会是这样的:

$categories = new CategoryCollection;
$mapper = new CategoryMapper;

$categories->forProduct($productID);
$mapper->fetch($categories);

// .. etc.

你必须考虑,当你搜索"素食"产品,用户也会期待"素食主义者"要显示的内容(如 - 您的类别可能需要基于树的"继承")。