Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] setChange() danas un Observable

Sujet résolu
    17 avril 2008 à 15:26:34

    Bonjour,

    J'ai une question au sujet des interfaces Observer et Observable. Lorsque l'observable est modifié, il appelle les méthodes

    setChanged();
    et
    notifyObservers(selObject);

    Pourquoi setChanged() ? A quoi il sert ? Parce que normalement, si on utilise la méthode update, on n'en a pas besoin. Or dans tous les tutoriels que j'ai consulté, on met toujours cette fonction mais je ne sais pas pourquoi...Si quelqu'un veut bien enrichir ma culture perso...Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      17 avril 2008 à 15:46:55

      Salut,

      setChanged()permet de spécifier que ton objet Observable a subit une modification.

      Car quand tu exécutes notifyObservers celui-ci appelle la méthode hasChanged() pour connaître l'état de l'objet, si celui est modifié alors il va spécifier au Observers qu'il y a modification est qu'ils doivent se mettre à jour, une fois fait la méthode clearChanged() est appelé pour spécifier que l'objet a déjà averti les Observers sinon il ne fera rien.




      • Partager sur Facebook
      • Partager sur Twitter
        17 avril 2008 à 15:52:31

        Salut Aerinder,

        Merci de ta réponse. Cependant, si j'ai bien compris en fait elle ne sert à rien. En effet, que tu fasses un boolean qui spécifie si elle a changé ou pas, il y aura quand même un appel fait à tous les observers non ?
        • Partager sur Facebook
        • Partager sur Twitter
          17 avril 2008 à 16:04:03

          Non les Observers ne seront appelés que dans le cas où la méthode hasChanged() retroune TRUE. Et cette méthode qui vérifie un booléen ne spécifie TRUE que si tu as utilisé la méthode setChanged() avant l'appel du notifyObserver.




          (j'ai pas très bien pigé ta question)
          • Partager sur Facebook
          • Partager sur Twitter
            17 avril 2008 à 21:17:44

            Ben apparemment si parce que moi j'ai bien compris ta réponse :)

            Merci beaucoup en tout cas ^^
            • Partager sur Facebook
            • Partager sur Twitter

            [JAVA] setChange() danas un Observable

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown