On s'est mal compris : je voulais dire qu'il y a une instance par matériel (par exemple un clavier,une souris) et que potentiellement il peut y en avoir plus, donc les classes correspondantes (et l'interface commune) ne peuvent pas être singleton.Et encore, cela n'est pas totalement vrai, dans le cas d'un jeu avec de joueur sur un seul peripherique ... Il y aura bien deux objets sur un materiel. Et de plus, avec votre instance unique, il est difficile de differencier par la suite quel joueur aura fait l'action.
En revanche, dans ce genre de système, il faut bien un objet qui :
1. détienne les différents objets représentants les matériels d'entrée;
2. les mettes à jour (sur demande) : traite les messages du matériel pour obtenir un "état" résultant des différents matériels.
3. fournisse l'accès à ces objets détenus.
Quel que soit cet objet, il doit être unique, soit parcequ'il n'est instancié qu'une fois dans un singleton, soit parcequ'il est lui même singleton. On peut faire sans, mais on reviens aux problèmes de communication et d'érreurs faciles (instancier plusieurs fois cet objet et se retrouver avec différents codes piochant dans des états pas toujours synchro...)
Partager