Salut,
Je me pose le problème de définir correctement des objets qui peuvent avoir des relations bilatérales. Par exemple un objet "Page de livre" contient un ensemble d'objets "mot" mais réciproquement un objet "mot" peut se retrouver dans un ensemble d'objets "page de livre".
Dans mon cas la performance est très importante, c'est à dire qu'il faut être capable de trouver le plus rapidement possible la liste des pages qui contient un mot et réciproquement la liste des mots contenus dans un page. Bref on veut optimiser la performance de recherche bidirectionnelle.
Mon premier réflexe serait de définir dans l'objet "mot" une liste de "pages" et réciproquement dans l'objet "page" une liste de "mots". Cela répond correctement au problème de performance de la recherche bidirectionnelle mais j'ai l'impression que du point de vue conception objet c'est carrément nul. En effet il y a d'une part duplication d'information (mais c'est peut-être indispensable pour une recherche bidirectionnelle rapide) et d'autre part on introduit une dépendance peut-être trop forte entre les deux classes d'objets.
Quelle solution élégante proposeriez-vous à ce problème ?
Merci
Partager