Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre régulier
    Inscrit en
    février 2006
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 344
    Points : 81
    Points
    81

    Par défaut Oberver pattern: multiple event

    Bonjour,

    Je viens de découvrir le design pattern observer/observable et j'ai une question.

    J'ai un observable qui peut notifier des observers pour different type d'évènements:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class MyObservable : public Observable{
      void changeSize(int size){
       //...
       notifyObserver();
      }
    
      void changeState(State state){
       //...
       notifyObserver();
      }
    };
    Problème: j'ai des observer qui ont besoin d'être notifiés quand le status de mon observable change mais pas quand sa taille change. Comment faire cela ?

    Le design pattern de base ne permet pas de faire ça et je ne vois aucun articles sur Internet qui dit donne solution dans ce cas.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2009
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : avril 2009
    Messages : 520
    Points : 518
    Points
    518

    Par défaut

    Comment ton code est implémenté ?
    Tu pourrais ajouter une condition qui vérifie pour chaque notification si l'observer est concerné par la notification de ce type.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •