Designfrage

Status
Nicht offen für weitere Antworten.

Bit2_Gosu

Bekanntes Mitglied
Hi!

Ich habe eine Klasse "Chessboard". Einem Tupel columnID (int)/ rowID(int) ist ein Objekt der Klasse "Square" zugeordnet. Einem Square ist wiederum ein Objekt der Klasse "Piece" (also Figur) zugeordnet.

Also: column und row --> square --> piece

Jetzt frage ich mich, wie ich das in der Klasse Chessboard mit variablen regle. Ich könnte eine HashMap<Square, Piece> haben. Wenn ein Bentuzer dann aber wissen will, welcher Square die position 3/2 (column und row) hat, müsste ich aber das keySet() der HashMap durchgehen und für jeden Square schauen, ob er die angegebenen columnID und rowID hat.
Das muss ja irgendwie besser gehen, denn eigentlich kann ja von column/row unmittelbar auf square geschlossen werden.
Dann habe ich mir überlegt: Ich habe zwei Variablen: einen Zweidimensionalen Array der Art Square[column][row] und eine HashMap<Square, Piece>. Dann habe ich aber zweimal die ganzen Squares gespeichert. Auch blöd...

Was würdet ihr tun?
 
S

SlaterB

Gast
diese Art von doppelten Speichern ich nicht so bedenklich,
andererseits vielleicht auch gar nicht nötig,
was spricht dagegen, in Square ein Klassenattribut Piece einzufügen?

wenn es aus irgendeinem Grund nicht geht, dann eine neue Klasse PieceSquare/ SquarePiece mit Link auf ein Sqaure + ein Piece,
das Array dann PieceSquare[][]
 

Bit2_Gosu

Bekanntes Mitglied
"neue Klasse PieceSquare/ SquarePiece mit Link auf ein Sqaure + ein Piece"

super Idee!

viel bessere performance jetzt. Danke!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben