Ad esempio, se ho un gioco che ha alcuni componenti, che hanno Player e Enemy, così come il contenitore genitore, Game, ad esempio:
Versione 1 :
public class Player{
private int hp;
private Label hpLabel();
//some other properties
}
public class Enemy{
private int hp;
private Label hpLabel();
//some other properties
}
//some other component classes
public class Game{
Player player;
Enemy enemy;
//some other components
public void changeState(int state){
//game loop
}
}
e un altro stile che raggruppa i campi di dati (così come le viste) in una singola classe:
Versione 2
public class GameData{
public int playerHp;
public int enemyHp;
//some other data field
}
public class GameViews{
public Label playerHpLabel;
public Label enemyHpLabel;
//some other views
}
public class Game{
public GameData gameData;
public GameViews gameViews;
public void changeState(int state){
//game loop
}
}
So che la versione 1 è il modo standard per farlo, ma ho anche scoperto che la versione 2 ha alcuni vantaggi, ad esempio: mi consente di avere una visione generale dei dati o dello stato del gioco, nonché dei componenti dell'interfaccia utente disponibile sullo schermo. quale versione dovrei usare?