Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Profil pro
    Ingé étude & dev
    Inscrit en
    mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé étude & dev

    Informations forums :
    Inscription : mars 2009
    Messages : 94
    Points : 69
    Points
    69

    Par défaut Bon design pattern pour synchroniser deux modules (Adapter, Observer ?)

    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

  2. #2
    Membre émérite
    Inscrit en
    janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : janvier 2011
    Messages : 805
    Points : 2 925
    Points
    2 925

    Par défaut

    Bonjour,

    Si la seule façon de recevoir des données du composant 1 est de s'abonner à ses événements, alors le composant 3 sera de facto un Observer et une forme d'Adapter... je ne vois pas très bien comment on pourrait se passer de l'un ou l'autre.

    En tout cas cette démarche de découplage me semble très saine dans l'esprit. Cf cet article : http://blog.8thlight.com/eric-smith/...not-yours.html

  3. #3
    Membre du Club
    Profil pro
    Ingé étude & dev
    Inscrit en
    mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé étude & dev

    Informations forums :
    Inscription : mars 2009
    Messages : 94
    Points : 69
    Points
    69

    Par défaut

    C'est justement cet espèce de mélange que je vois m'arriver dessus qui avait motivé ma question.

    C'est vrai que le composant 1. est un peu contraignant avec le système d'évènement, qui peut toujours ne pas être utilisé mais où on est vraiment invité à le faire (car après il y a aussi la démarche de ne pas vouloir modifier une librairie externe).

    Concernant le lien, au début je ne comprenais pas le rapport, mais l'exemple avec le ping m'a fait comprendre ce pourquoi tu m'avais invité à le lire.

    DU coup je vais coupler Adapter/Observer pour ce que je veux faire, à moins que d'autres idées ne viennent ?

Discussions similaires

  1. Design pattern pour la synchronisation des données
    Par cedrix57 dans le forum Design Patterns
    Réponses: 2
    Dernier message: 23/11/2012, 12h31
  2. Design pattern pour la synchronisation des données
    Par cedrix57 dans le forum Modélisation
    Réponses: 0
    Dernier message: 04/04/2012, 11h45
  3. Design Pattern pour module de raisonnement
    Par befalimpertinent dans le forum C++
    Réponses: 6
    Dernier message: 18/06/2007, 21h46
  4. Quel design pattern pour réaliser une synthèse
    Par jbwan dans le forum Design Patterns
    Réponses: 3
    Dernier message: 21/04/2006, 12h39
  5. Design Patterns pour l'Evolutivité ?
    Par TrollMaster dans le forum Design Patterns
    Réponses: 7
    Dernier message: 20/01/2005, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo