2017-07-27 49 views
-3

我想製作一個程序,在單獨的頁面上列出食譜,其成分和成分。如何創建一個擁有類的類?

我想創建類「成分」和「食譜」。 「食譜」類將具有名稱和說明屬性和Dictionary<Ingredient, int>屬性。我正在考慮用「成分」類填充詞典以及它們所需的用量,例如,假設我創建了「食譜」類的實例並將其命名爲「煎餅」。我將在字典中添加一個名爲「Milk」的新實例Ingredient,其數量爲100(例如),併爲「雞蛋」等操作。

這是關於這種事情的正確方法,因爲我想要在「成分」頁面上創建對成分本身的參考或鏈接?

+3

你爲什麼不試試看看它是否有效? – FCin

+0

<成分,數量>列表更有意義,您現在正在濫用詞典來合併這兩個屬性。使用Tuple或創建一個Component類。 –

+0

除了濫用'Dictionary'之外,你很快會遇到需要針對分數的更精細的度量單位等。 – Filburt

回答

2

您所描述的方式將正常工作。然而,你所描述的通用解決方案是裝飾器模式。裝飾器模式用於創建動態對象。

https://www.youtube.com/watch?v=j40kRwSm4VE

這個例子是使用比薩和澆頭,但它本質上是相同的概念。

0

像這樣的工作:

public enum UnitOfMeasurement 
{ 
    Grams, 
    Milliliters 
} 

public class Ingredient 
{ 
    public UnitOfMeasurement UnitOfMeasurement { get; set; } 

    public decimal Unit { get; set; } 

    public string Name { get; set; } 
} 

public class Recipe 
{ 
    public string Description { get; set; } 
    public List<Ingredient> Ingredients { get; set; } 
    public List<string> RecipeSteps { get; set; } 
} 

我可能會創建一個類或者一些更復雜的對象配方步驟以及但這在很大程度上取決於你想用這個做什麼。