Vous aurez besoin de la composition et du polymorphisme.
En supposant qu'un joueur peut avoir plus d'une propriété, vous aurez besoin d'une liste de propriétés. Si les propriétés peuvent différer dans les attributs qu'elles possèdent, vous pouvez appliquer Polymorphism et Inheritance. Vous ne verrez probablement que l'héritage ci-dessous, mais vous aurez besoin de Polymorphisme lorsque vous obtiendrez les différentes propriétés et les manipulerez.
En principal:
public static void main(String args[]){
Player player1 = new Player();
BlackProperty blackProperty = new BlackProperty();
BlueProperty blueProperty = new BlueProperty();
player1.addProperty(blackProperty);
player1.addProperty(blueProperty);
}
Toutes vos classes de domaine:
public class Player{
private List<Properties> propertyList;
// getters and setters
public void addProperty(Properties properties){
if(this.propertyList == null){
this.propertyList = new ArrayList<Properties>();
}
this.propertyList.add(properties);
}
}
public class Properties{
private int noOfFloor;
// getters and setters
}
public class BlackProperty extend Properties{
private String noOfGate;
// getters and setters
}
public class BlueProperty extend Properties{
private String noOfLawn;
// getters and setters
}
La composition est la seule façon d'y parvenir. Une collection fonctionnerait bien. Qu'avez-vous essayé et où êtes-vous coincé? –
Je n'ai encore rien essayé, mais j'ai joué avec ça dans ma tête. À l'origine, j'avais prévu d'avoir une variable owner de type int dans chaque propriété. Le propriétaire serait alors déterminé par la valeur d'index pour le joueur (puisqu'ils ont été mis dans une liste). J'ai l'impression que cette méthode n'est pas très efficace et limitée. –