paolo-chiappini / proj-ingsw-heroscimmie

Apache License 2.0
2 stars 0 forks source link

Accesso ai tile nella Bookshelf #1

Closed paolo-chiappini closed 1 year ago

paolo-chiappini commented 1 year ago

Nell'attuale implementazione della libreria, il metodo getTiles(): Tiles[][], ritorna l'array interno (privato) come riferimento, il che permetterebbe a un utilizzatore esterno della classe di modificarlo.

Dato il modo di utilizzo del metodo, suggerisco di modificarlo con un metodo getTileAt(int x, int y): Tile che ritorni una singola tile alle coordinate specificate: in questo modo, getTiles()[x][y] si trasformerebbe in getTileAt(x, y)... (per il nome del metodo ci sono diverse possibilità getTile, getTileAt, etc.)

Edit:

Bisogna ricordare che in generale, quando si riceve dall'esterno un riferimento ad una collezione di oggetti, questa andrebbe copiata e non semplicemente assegnata, stesso quando una collezione viene ritornata da un metodo (in altre parole, non bisogna esporre la rappresentazione interna dei dati). (https://codeql.github.com/codeql-query-help/java/java-internal-representation-exposure/)