Wie designe ich die Klasse richtig?
-
Hallo!
Ich möchte eine Klasse "Card" für eine Spielkarte erstellen.
Wie mache ich das richtig?
Im moment überlege ich wie ich die grafischen Elemente einbinden soll, wenn überhaupt. Oder sollte ich erstmal eine Klasse erstellen die nix mit grafik zutun hat?So?
class Card { int Value; //Oder auch ein enum int Color; //Oder auch ein enum }oder so?
class Card {
int Value; //Oder auch ein enum
int Color; //Oder auch ein enum
image Grafik;
}
-
Daten/Logik/Darstellung immer trennen.
-
Wenn das Pokerkarten oder so sein sollen, sind color und value ganz klar ein enum.
Bei Pokerkarten macht es zudem irgendwie wenig Sinn, dass eine Karte ihr Bild besitzt. Wenn du jetzt Doppelkopf spielen willst, liegen die Bilder alle doppelt im Speicher.
Aber auch wenn das nicht der Fall wäre, eine Funktion draw_card oÄ die dann das passende Bild raussucht ist so problemlos möglich, dass du das auch so implementieren solltest.
-
Setze dich unbedingt mit dem Sinn und Zweck einer Klasse bei objektorientierter Programmierung auseinander. Da gibt es Eigenschaften (Daten), Methoden (Funktionen), Konstruktoren (Aufbau der Klasse) und Destruktoren (Abräumen der Klasse). Bei jedem Design einer Klasse stehen die Fragen "Welche Daten soll die Klasse behandeln?", "Was soll mit diesen Daten angefangen werden?", "Wie kriege ich die Daten rein und raus?", "Was soll die Klasse mit den Daten selbst machen?", "Wie will ich auf was zugreifen?" Eine Klasse macht grundsätzlich nur das, was ihr als Aufgaben übertragen ist!
Also Daten/Logik/Darstellung wäre kein schlechter Ansatz.