Je travaille sur un jeu et je me retrouve avec un tas d'auditeurs.
Par exemple, lorsque la langue du jeu change, le LanguageManager envoie un événement languageChanged qui fait que tous les éléments gui intéressés obtiennent le nouveau texte et se redessinent. Cela signifie que chaque élément gui intéressé implémente la classe LanguageListener.
Une autre chose que je fais souvent est d'injecter des dépendances. Le GuiFactory doit définir des polices, il a donc un pointeur vers le FontManager (qui contient un tableau de polices TTF), il a également un GuiSkinManager pour obtenir Image* basé sur le thème du jeu. Est-ce la bonne façon de faire cela?
Ma principale préoccupation concerne cependant les auditeurs et leur grand nombre ; surtout pour l'interface graphique. La bibliothèque gui que j'utilise est presque entièrement basée sur les auditeurs. Je peux m'en sortir avec des ActionListeners la plupart du temps, mais j'ai toujours des ifs imbriqués pour if event.getSource() == button2 etc.
En général, quels types de motifs de conception sont utilisés pour éviter ces problèmes dans de grands projets de jeu beaucoup plus complexes que le mien?
Merci