Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Bonus 2
Angenommen ich bin ein Alchemist.
Hab ich dann ein Ingredient Behaelter aus denen ich Ingredients hole die man als cookables bezeichnen kann und anschließend in ein cookingPot reinwerfe.
Oder bin ich ein sparsamer Alchemist der sein cookingPot als IngredientStack verwendet. Und aus magischen Gründen der zuerst reingeworfene Ingredient unten schwimmt und der letzte oben. Und da oben die Temperatur stimmt reagieren nur die 2 Ingredients die ja cookelbar sind.
Wenn ich der erstere bin.
Bezeichne ich Ingredients solange ich sie nicht cooken will als Ingredeints und pute sie in meine zutatentasche.
Und sobald ich meine Ingredients cooken will werden meine Ingredients zu cookables und pute sie in den Topf.
Oder mache ich einfach ein groben Fehler wenn ich zwischen cookables und Ingredients anfange zu unterscheiden?
Aber gibt es dann ein großen Unterschied zwischen CookingPot und IngredientStack?
EDIT: Problem gelöst. Ich bin ein Alchemist der ein Rucksack voller Ingredients hat und an einem CookingPot vorbeikommt. Unglücklicherweise hab ich derart dicke Wurstfinger das ich immer nur das Ingredient nehmen kann was ganz oben in der Tasche ist:) Ich schreib jetzt lieber nicht was ich falsch gemacht sonst darf ich gleich von Übung 1 aus wieder anfangen.
Ich gehe trotzdem mal auf ein paar Punkte ein:
Eine Unterscheidung sollte eigentlich nicht nötig sein, weil [m]Ingredient [/m](wie auch [m]Recipe[/m]) auch [m]Cookable[/m] implementiert. Um dir also zu merken, was du schon alles erforscht hast, ist es am einfachsten, sich Cookables zu merken.
Der [m]IngredientStack [/m]ist zum Implementieren der Funktionalität des [m]CookingPot [/m]nötig, sonst eingentlich nicht, weil er zur allgemeinen Verwendung recht eingeschränkt ist: Man kann nur [m]Ingredient[/m]s, keine [m]Recipe[/m]s verarbeiten und nur das oberste wieder herausnehmen. Verboten ist es aber natürlich nicht.
Mal ne Frage von Anfänger zu Profi,
Wäre es nicht besser statt Cookable und Ingredients als Klasse einfach nur Ingredients bzw. Cookables zu haben?
Somit müsste man nicht ein Rezept aus Cookables und ein IngredientStack haben sondern einfach nur ein CookableStack und Cookablerezept bzw. IngredientStack und Ingredientrezept. Also quasi statt Ingredients sind eine Form von cookables, einfach nur Ingredeints sind Ingredients und gut is?
Ich Frage, weil ich hier ein Rezept habe. Das Rezept wird durch Cookables beschrieben. Jetzt suche ich in meiner Tasche nach den Cookables. Aber ich finde keine, weil ich in meiner Tasche nur Ingredients habe die auch als Ingredients behandelt werden wollen. Gleichzeitig will mein Pot Ingredients haben und keine Cookables obwohl Ingredients ja eine Form von Cookables sind. Das heißt wenn ich Cookables in mein Topf werfen möchte sagt mein Topf(also java): found Cookable, will aber Ingredient.
Ich glaube du denkst noch zu kompliziert.
Das brauchst du gar nicht. Jedes [m]Cookable[/m] (also Rezept und Zutat) muss ja die Methode [m]cook(CookingPot)[/m] implementieren. Die [m]Ingredient[/m]s tun das schon, indem sie sich selbst in den Topf legen. Was musst du jetzt im Rezept mit deinen beiden Zutaten machen, so dass am Ende der [m]cook[/m]-Methode das Ergebnis des Rezepts im Topf ist?
Um dann letztlich neue Rezepte zu erforschen musst du nur wissen, welche [m]Cookables[/m] (egal ob Basiselement oder schon gefundenes Rezept) du bereits kennst und alle paarweisen Kombinationen von denen durchprobieren. Und das dann immer wieder aufs neue.