Bonjour,
Je cherche à savoir : quelle est la meilleure méthodes pour gérer des hierarchies d'aggregation parallèles (exemple ci dessous)?
Je pense que c'est un problème récurrent, et pourtant je ne trouve pas de design pattern sur le sujet. Y a-t-il une solution récurrente?
=====================================
Exemple de problème :
Dans un jeu video j'ai une classe VoitureTempsReel. VoitureTempsReel contient N SiegeTempsReel qui contiennent chacun M MateriauTempsReels.
Au niveau de la configuration, j'édite des classes : VoitureConfig, SiegeConfig, et MateriauConfig. Ces classe sont utilisées pour initialiser VoitureTempsReel. (Elles permettent l'édition + (de)sérialisation automatique).
Lorsque je sauvegardes des informations temps réelle, de la même manière je vais avoir : VoitureSave, SiegeSave, MateriauSave qui contiennent les informations qui ne sont pas dans VoitureConfig etc.
Cette archi me convient plutôt bien, sauf que :
- VoitureConfig contient des SiegeConfig qui contiennent des MateriauConfig. Idem pour les XXXSave. On a donc des hierarchies d'aggrégation parallèles, dont le + haut niveau est relié (par l'initialisation des infos), et le reste est transmis en cascade.
- On a sauvent la copie des infos de VoitureConfig dans les attributs de VoitureTempsReel (et idem pour les autres) à faire et maintenir à la main.
=====================================
Background : j'ai déjà codé des jeux vidéos professionnellement. Je suis (très) à l'aise en général, mais cette question me turlupine depuis des lustres.
Avez vous des remarques / suggestions? Y a-t-il un design pattern adapté?
Et si j'utilisais un préprocesseur custom (j'en ai déjà écris) cela aurait-il du sens ?
Partager