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

Logging Java Discussion :

Design Pattern Observer et libération de ressources


Sujet :

Logging Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Design Pattern Observer et libération de ressources
    Bonjour,

    Je débute le java et la POO depuis quelques mois maintenant et me pose une question sur l'impact de la création de classes anonymes sur la libération des ressources lors de la destruction d'une instance de classe.

    la classe A est observee par B:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class A implements AObservable {}
     
    class B {
      public B(A a) {
        a.addAObserver(new AObserver(){
          @Override
          public void update(){ blablabla }
        });
      }
    }
    La question:
    Ce type d’implémentation du pattern observer empêche t il la destruction de l'instance de la classe B observant A?

    Il y a dans A une ref vers la classe anonyme créée ligne 6... comment tout ceci se goupille

    Merci d'avance

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je vois juste que B ajoute un observer à A, une fois qu'on quitte la méthode, A n'est pas conservé...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par Hephaix Voir le message
    Je débute le java et la POO depuis quelques mois maintenant et me pose une question sur l'impact de la création de classes anonymes sur la libération des ressources lors de la destruction d'une instance de classe.
    Si tu veux des tests sur la rétention de mémoire, je te conseille de jeter un oeil à Memory Analyser ou YourKit.

    Citation Envoyé par Hephaix Voir le message
    Ce type d’implémentation du pattern observer empêche t il la destruction de l'instance de la classe B observant A?
    Oui.
    Les classes anonymes crées dans un contexte non-static sont transformées en "classes internes" (inner classes). Or les classes internes non static conservent une référence vers l'instance "mère". (Java tutorials > Nested classes).

    Si tu te poses des questions sur la structure interne d'une classe tu peux utiliser la commande 'javap' : javap -p 'A.class' 'A$B.class'
    Citation Envoyé par Hephaix Voir le message
    Il y a dans A une ref vers la classe anonyme créée ligne 6... comment tout ceci se goupille
    A possède une référence sur une instance de la classe anonyme qui possède une référence sur l'instance de classe B
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci, cela répond parfaitement a ma question

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

Discussions similaires

  1. design pattern observer vs event
    Par maa dans le forum C#
    Réponses: 5
    Dernier message: 17/12/2007, 16h24
  2. Design Pattern Observer
    Par BoBy9 dans le forum Logging
    Réponses: 1
    Dernier message: 18/11/2007, 19h16
  3. Design pattern Observer
    Par aicfr dans le forum Logging
    Réponses: 1
    Dernier message: 06/11/2007, 23h14
  4. [Conception] Design Pattern Observer Java
    Par jeb001 dans le forum Général Java
    Réponses: 4
    Dernier message: 02/05/2007, 23h43
  5. [Observateur] Précisions sur le design pattern Observer [UML]
    Par joquetino dans le forum Design Patterns
    Réponses: 2
    Dernier message: 07/10/2004, 22h35

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