Bonjour,
J'ai un petit soucis dans un programme perso (jeu avec des bateaux)...
Alors voila pour faire simple, j'ai une classe Fleet ("Flotte" pour les puritains) qui a des getteurs et setteurs. exemple:
*getCoordonnees
*setCoordonnees
Cette classe est utilisé a plusieurs endroit du programme, notamment :
* Le "GameBoard" qui est le cerveau du jeu et connait en permanence l'état actuel du jeu et donc les Flottes existantes.
* Les classes implémentant l'interface "Bot" qui représentent les différents bots que je suis en train de créer pour l'IA.
Le jeu est plutôt destiné à des dev., le but étant de proposer à chacun de développer son propre Bot et de se mesurer à d'autres IA.
Voilà pour l'intro =)
Le problème :
Dans la fonction principale d'un Bot, on récupère un objet gameboard et on retourne un ensemble de flottes représentant les nouvelles flottes à envoyer.
Il faut donc pouvoir créer un objet Flotte (=> Flotte != interface), mais on ne doit pas pouvoir utiliser de setter, au risque de pouvoir modifier les données contenues dans le gameboard (par exemple, "téléporter" une flotte à l'endroit souhaité...).
Dans le gameboard, on doit manipuler des objets flottes et mettre à jour leurs coordonnées au fur et à mesure du jeu (à chaque tour, elle avance), ainsi, le moteur graphique peut ensuite afficher la flotte à ses nouvelles coordonnées.
Question :
Quelle serait la bonne façon de faire pour limiter l’accès aux setters ?
Pour info ce que j'ai fait :
Pour l'instant, je cast les Flottes retourné par le bot en FlotteImpl qui est une classe fille qui dispose de setters (Flottes n'en a pas). à Chaque tour je doit regenerer une list<Flotte> a partir de ma list<FlotteImpl>, je trouve ça assez lourd.
Merci =)![]()







Répondre avec citation


La plupart des réponses à vos questions sont déjà dans les 

Partager