Seite 4 von 5

Verfasst: Donnerstag 20. November 2008, 19:37
von DasIch
smashed to pieces hat geschrieben:Heißt das folglich auch, dass die dictionaries unverwendbar sind[...]
Nein, dass heisst nur das du nicht in der Lage bist dictionaries richtig zu verwenden.

Verfasst: Donnerstag 20. November 2008, 21:13
von Qubit
BlackJack hat geschrieben:@Qubit: Wobei man es mit dem Realismus auch nicht übertreiben muss. Es reicht durchaus Seiten mit Farben zu verwalten, es muss kein "physikalisch" korrektes Modell sein.
Nein, das Modell ist ein abstract layer, keine Simulation ;-)
So interessieren hier zB nicht die Drehungen um 90 Grad und das "gequietsche" des Würfels. Es interessieren diesbezüglich (endliche) Zustände, daher würde ich auch von "Transitions" und nicht von "Drehungen" in den Methoden sprechen.
Der Vorteil ist, dass man nicht alle Zustände der Teilsysteme in den Methoden als Interface des Würfels implementieren und somit kennen muss; das ergibt sich dann aus dem Objektmodell von selbst :-)
Wenn man einen Zustandsraum mitmodelliert, dann legen die 6 zentrierten Objekte (plus das oBdA im Mittelpunkt fixierte Objekt) ein "Bezugssystem" fest. Da "Transitions" zwei Richtungen haben, legen jeweils zwei der 6 Objekte auch eine Rictung + "Drehsinn" fest, sozusagen ein "Farbbezugssystem".
Ich würde nun die Zustände in den Objekten selbst speichern. Transitions modifizieren also direkt die Attribute der Objekte. Wenn ich also ein "Zweifarbenobjekt" hätte (blau,gruen), dann wäre eine Transition zB ein Übergang von [blau,gruen] -> [rot,gelb], der Zustand somit eine Eigenschaft des Objekts selbst (zusätzlich zur intrinsischen Eigenschaft (blau,gruen)). Natürlich müssen alle Transitions wohlüberlegt modelliert werden; notfalls händisch, besser mit einer "Würfelalgebra". Aber das würde dann vielleicht doch etwas über das Ziel hinausgehen ;-)

Verfasst: Donnerstag 20. November 2008, 22:09
von BlackJack
@Qubit: Das klingt IMHO alles komplizierter als 6 Seiten jeweils als n*n-Feld von Farbwerten zu speichern.

Verfasst: Donnerstag 20. November 2008, 22:17
von Qubit
BlackJack hat geschrieben:@Qubit: Das klingt IMHO alles komplizierter als 6 Seiten jeweils als n*n-Feld von Farbwerten zu speichern.
Naja, klar, die Spezifikationen sind umfänglicher als eine anschliessende Implementierung in Python oder Ruby.. nur in Java wäre die Implementierung umfänglicher als die Spezifikation ;-)
Der TO wollte ja etwas über OOD erfahren, oder nicht?

Verfasst: Donnerstag 20. November 2008, 23:56
von lunar
Qubit hat geschrieben:Der TO wollte ja etwas über OOD erfahren, oder nicht?
Gemessen an dem, was der OP erreichen möchte, waren deine Ausführung aber schon näher am Overengineering als am Design ;)

Verfasst: Freitag 21. November 2008, 00:20
von Leonidas
Qubit hat geschrieben:Der TO wollte ja etwas über OOD erfahren, oder nicht?
Er wollte etwas darüber erfahren wie man es machen würde. Objektorientierung nur der Objekte wegen ist total wertlos, es geht ja darum dass man das Problem ausreichend genau Modeliert - also so wenig wie möglich macht, so viel wie nötig. Natürlich, es gibt da immer irgendeinen Ermessungsspielraum, aber man muss es nicht übertreiben, damit macht man sich das Leben unnötig schwer.