Questo dipende, in parte, da quale pezzo di codice è responsabile per controllare chi è il giocatore corrente. È CurrentGame
o il codice che usa CurrentGame
("il chiamante")?
Se CurrentGame
è responsabile per l'impostazione del prossimo giocatore dopo che il turno di CurrentPlayer
è finito, allora l'esposizione di SetCurrentPlayer
darebbe al chiamante un modo per interferire con lo stato di CurrentGame
. Ad esempio, se il giocatore A termina il proprio turno, CurrentGame
imposterà CurrentPlayer
su Giocatore B; tuttavia, il chiamante potrebbe utilizzare questo metodo per impostare CurrentPlayer
sul giocatore A prima che il turno del giocatore B sia terminato.
Se il chiamante è responsabile:
La tua prima opzione sarebbe praticabile, sebbene il chiamante potrebbe essere eccessivamente dipendente dall'utilizzo di una proprietà di CurrentGame per ricordare chi stava giocando l'ultima partita.
Se CurrentGame
è responsabile:
Considera un approccio diverso, ad esempio:
CurrentGame.SetPlayers(OrderedList<Player>)
Il chiamante passerebbe nell'elenco dei giocatori che è ordinato in base alla sequenza dei loro turni. CurrentGame
avrebbe quindi impostato CurrentPlayer
sul primo giocatore nell'elenco quando il gioco inizia.