Bonjour,
En vue d'implémenter une fonctionnalité dans un projet existant, je m'interroge sur la manière de piloter son fonctionnement qui contient un couplage que je veux éviter "fort" entre deux éléments composants cette fonctionnalité.
Composant 1 : un composant dont je dépend, qui reçoit et traite des données, et informe (lance des évènements) de ses actions. Ce composant n'est pas irremplaçable. La notion d'évènements est importante.
Composant 2 : un composant de présentation de données que je créé, qui va réagir en fonction de l'évolution des données. Mais le composant 1 voit les données de sa manière propre et mon composant 2. va se les représenter de manière détachée.
"Composant" 3 : entre les deux mon couplage : je ne veux pas instaurer un couplage fort entre 1. et 2. Le composant 3 va donc constituer un pont qui va traduire les évènement du composant 1. en quelque chose de compréhensible par le composant 2.
- Dans l'idée : un évènement se produit, composant 1. notifie le 3. et le traduit pour le forwarder directement au 2.
- Mon composant 2. voit le composant 3 comme son traducteur
- Si je change mon composant 1., je n'aurais qu'à changer le composant 3. Mon composant 2. ne sera pas modifié.
Pour le moment je penche du côté du design pattern Adapter ou de l'Observer.
Lequel semble selon vous le plus adapté ? Si je suis sur la mauvaise voix, quel autre design pattern conviendrait ?
Note: au niveau technique, ce besoin de ne pas coupler les composants provient du fait que le composant 1 n'est pas basé sur le même fonctionnement (technologies en place) que le reste du projet même si le projet est capable de le comprendre (d'où mon composant 3 qui sera le "traducteur").
Merci
Partager