IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Design Patterns Discussion :

pattern publish/subscribe : communication entre objets [Observateur]


Sujet :

Design Patterns

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut pattern publish/subscribe : communication entre objets
    Bonjour.

    Est-ce que vous savez comment faire communiquer 2 objets entre eux ?

    Je vous présente mon problème :

    Tout d'abord, le diagramme de classe avec une classe Entreprise qui contient N Directeurs et M Employés :


    Dans le diagramme de machines à états de la classe Entreprise, je crée les objets :


    Dans le diagramme de machines à états de la classe Directeur, j'envoie un message à tous les employés :


    Dans le diagramme de machines à états de la classe Employé, je me contente de les recevoir :



    Pour simplifier le problème, je ne crée ici que un seul directeur et 5 employés
    Quand j'envoie le message 5 fois par le port : il est reçu toujours par le premier employé lors de la simulation.
    Ci-dessous, le diagramme de séquences générée lors de la simulation :


    Comment faire pour que le directeur envoie un message pour chacun des employés ?

    > Je pensais passer par la classe Entreprise, mais je ne trouve pas ça "propre".
    Sinon, je suis en train d'essayer en passant les références de ces classes de la classe Entreprise vers la classe Directeur lors de sa création.

    Si vous avez une idée, ça m'aiderait grandement.
    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Personne n'a la moindre petite idée ?
    ou une piste à suivre ?

  3. #3
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    en passant, sans vouloir faire de la "lutte des classes" le directeur est aussi un employe :-), bref faire une classe Directeur ne me semble pas forcement tres judicieux

    pour le reste il y a plusieurs possibilites :
    • soit l'operation 'dire_a_tous' definie sur entreprise recevant le message à diffuse a l'ensemble des employes de Entreprise, sauf l'emetteur qui se donne en param
    • et/ou l'operation 'dire_a' definie sur Employe recevant un message, le receveur etant l'interlocuteur, la liste des interlocuteurs pouvant etre fournie par Entreprise
    • l'operation de classe 'leur_dire' recevant la liste des destinataire et le message pour une diffusion non totale
    • etc...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    En fait : j'ai fait un exemple simplifié de mon problème. Il fallait juste que j'ai une classe qui communique avec les autres. Mais ça représente ce que j'essaye de faire.

    Bon je suis tes idées. C'est à peu près ce à quoi je pensais.
    En utilisant des références sur les autres objets.

    Merci.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 51
    Points : 67
    Points
    67
    Par défaut [uml...]
    Hello,

    je pense kil y a confusion car ce que tu montres n'est pas vraiment UML...
    Déjà toutes tes SMachines sont fausses.
    Ensuite ton modèle est biaisé car il y a différenciation entre directeur et employé. Le directeur est un rôle joué par un employé.

    Ensuite, pour ton prob, il faut modéliser un system de listener avec abonnement avec certaines resposnabilités qui seront réalisé par un comportement préçis.
    Ainsi tu auras une méthode "NotifierTousLesEmployers(:Notification)" qui sera réalisé par ton listener d'employés.

    Oki ?

    Tcho.

  6. #6
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    J'arrive une peu tard mais je confirme les propos de Joshua Beharia.
    Le principe de communication qui semble te poser problème est en fait le pattern publish/subscribe. Suivant la conception proposé par ce pattern, un objet "directeur" possède une liste d'objets employés qu'il parcours en envoyant un message, c-a-d un appel de methode. En bref, les employés sont à l'écoute (listener) de leur directeur.

    Bonne continuation.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 51
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Hephaistos007
    J'arrive une peu tard mais je confirme les propos de Joshua Beharia.
    Le principe de communication qui semble te poser problème est en fait le pattern publish/subscribe. Suivant la conception proposé par ce pattern, un objet "directeur" possède une liste d'objets employés qu'il parcours en envoyant un message, c-a-d un appel de methode. En bref, les employés sont à l'écoute (listener) de leur directeur.

    Bonne continuation.
    Merçi pour tes remarques.
    En tout cas, les classes seraient les suivantes: Entreprise,Entreprise_Listener et Personne.
    Ensuite deux associations bidirectionnelles: Entreprise-----{Directeur}Personne
    et
    Entreprise-----{Salarié}Personne

    Pusi une troisième unidirectionnelle:
    Entreprise-----Entreprise_Listener

    Et pour finir, un héritage:
    Personne------|>Entreprise_Listener

    C'est un premier point de vue, qui peut surmeent être améliorer mais qui mérite réflexion.

    Tcho !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pattern de communication entre objets enfant vers parents
    Par Chasseur d'étoiles dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 16/08/2011, 15h23
  2. Pattern pour des contraintes entre Objet
    Par fabgamer dans le forum Design Patterns
    Réponses: 7
    Dernier message: 24/09/2010, 13h06
  3. Communication entre objets via .NET Remoting
    Par JBidouille dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/05/2007, 23h52
  4. Communication entre objet via "Parent" ?
    Par starkson dans le forum Windows Forms
    Réponses: 11
    Dernier message: 17/02/2007, 19h22
  5. Communication entre objet
    Par Nasky dans le forum Langage
    Réponses: 1
    Dernier message: 27/05/2006, 22h13

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