2017-05-25 9 views
0

これは私の最初の大きなプロジェクトですので、私は正しいことをしたいです。 後でグループ化またはフィルタリングするプロダクトクラスを作成する予定です。OOP:カテゴリクラスと測定単位の取り扱い方法はありますか?

オブジェクトの例

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

問題1:

後に食べ物がビーガンであれば、私はそれらをグループ化することにしたい、ベジタリアン、肉やその他の

質問:

製品カテゴリは、energyValの属性商品オブジェクトまたはproductCategory/productList/veganProductのような別のクラスを作成し、その外観をどのように表示すべきですか?私が確信していないのは、すべてのオブジェクトを徹底的に調べて、属性が完全なビーガンであるかどうかをチェックするのに時間がかかり、非常に良い習慣のようには思えないからです。私が間違っているなら、私を修正し

問題2:

プロジェクトは、異なる測定単位と言語が考慮されるべきであることを意味し、世界中利用可能であるべきです。

質問: 言語はおそらくそのクラスを持つ必要はありませんが、測定単位はどうですか?

最終的に大きなOOPプロジェクトを計画する際の参照やリンクや例も私の質問に答えることができます。

答えて

1

"問題2"は最も簡単です。すべての測定値をSI単位(メトリック)で保存し、ユーザーのローカリゼーションオプションに基づいてレスポンスを作成するときにそれらを変換します。

「問題1」については...よく...各製品は複数のカテゴリ(SQL側の多対多)に属していると思います。私は別のクラスを使っています。 APUはこのようにちょっとのようになります。あなたはまた、それは、あなたが「ベジタリアン」製品を検索する場合、ユーザーはまたのように(「ビーガン」のものが現れることを期待する、検討する必要があり

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

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

// .. etc. 

- あなたカテゴリにはツリーベースの「継承」が必要な場合があります)。

関連する問題