Mein Problem ist folgendes: Ich habe Produkte, die andere Produkte benötigen, um produziert zu werden. Um zum Beispiel ein Boot zu bauen, brauchst du X Holz und Y Eisen. Ich muss irgendwie sowohl die Abhängigkeiten als auch die Produkte darstellen. Ich muss in der Lage sein zu zeigen, wie viel Holz in einem Lager ist und wie viel Holz ich brauche, um ein Boot zu bauen.So entwerfen Sie die Klassenstruktur anstelle einer großen Enum
Also war mein erster Gedanke, eine große enum Products
zu erstellen, und dann konnte ich Wörterbücher wie Dictionary<Products, int> RequiredProducts
oder Dictionary<Products, int> StoredProducts
erstellen. Es kann jedoch viele Produkte geben und es fühlt sich an, als wäre es ein schlechtes Design, um ein Enum mit etwa 50 Feldern zu machen. Außerdem benötige ich möglicherweise mehr Informationen über jedes Produkt, zum Beispiel die grafische Darstellung, die erforderliche Technologie und so weiter.
Es wäre viel besser, einige Klassenhierarchie zu verwenden, aber wenn ich eine abstrakte Klasse Produkt, und dann daraus ableiten, wie würde ich die erforderlichen Produkte darstellen? Dictionary<Product, int>
nicht tun, da jetzt würde ich eine Instanz eines Produkts benötigen, um etwas zum Wörterbuch hinzuzufügen. Die Sprache, die ich benutze, ist C#.
Vielleicht können Sie hier ein Fabrikmuster verwenden. –
Eigentlich neige ich dazu, Reflektionen zu verwenden und Wörterbücher mit Klassennamen als Schlüssel zu erstellen. Immer noch nicht sicher. – Dunno