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

Langage Java Discussion :

Bon usage du Singleton


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 80
    Par défaut Bon usage du Singleton
    lu,

    Je voudrais savoir si l'utilisation des Singleton, en nombre dans ma future application, ne risque pas de trop charger la mémoire vive, le CPU, etc... ?

    Y a t il une règle d'usage à respecter ? (genre mettre l'object à null lorsqu'il n'est pas utilisé)


    Exemple Developpez.com du Singleton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    /** Exemple d'implémentation d'un singleton.<p>
      * Cet exemple ne fait rien.
      */
     
    public class Singleton {
     
        /** Récupère l'instance unique de la class Singleton.<p>
        * Remarque : le constructeur est rendu inaccessible
        */
        publicstatic Singleton getInstance() {
            if (null == instance) { // Premier appel
                instance = new Singleton();
            }
            return instance;
        }
     
        /** Constructeur redéfini comme étant privé pour interdire
        * son appel et forcer à passer par la méthode <link
        */
        private Singleton() {
        }
     
        /** L'instance statique */
        private static Singleton instance;
    }

    Merci
    @+

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pourquoi as-tu beaucoup de singletons, est la question que tu devrais te poser. Pourquoi tes singletons devraient occuper beaucoup de mémoire en est un autre.

    Mais de toutes facons, mettre à null les singleton retire l'intérête même d'avoir des signelton, puisque tu pourra avoir plusieurs instance de la classe.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Je ne veux pas relancer un débat sur le singleton, mais l'écriture suivant est préférable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Singleton {
    	private static Singleton instance= new Singleton();
     
    	private Singleton() {
    	}
     
    	public static Singleton getInstance() {
    		return instance;
    	}

  4. #4
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Ce qu'il faut surtout éviter avec les singleton c'est l'écriture concurentielle car cela deviens un goulet d'étranglement.

    Par contre tu peux t'en servir comme objet porteur de configuration que tu charge a l'init et que tu n'accede qu'en lecture pendant l'execution.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 80
    Par défaut communication
    lu,

    En fait, je suis en train de tester la communication via les sockets.
    Et le singleton me semble la meilleure façon de mettre à jour les données, dans les écrans, du client lorsque le serveur envoie ses données.

    Ainsi, lorsqu'un object sera transmis, il sera analysé par le client puis mettra à jour les écrans associés (Table, Label, etc...) ; écran qui sont unique. C'est pour cela que le singleton me semble "bien".
    Me suffira de prévoir une méthode de mise à jour dans chaque "class" de singleton.


    Si vous avez mieux je suis preneur

    @+

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par aristeas Voir le message
    En fait, je suis en train de tester la communication via les sockets.
    Et le singleton me semble la meilleure façon de mettre à jour les données, dans les écrans, du client lorsque le serveur envoie ses données.
    Si ton singleton dépend de ton client, ce n'est pas vraiment un singleton.

    En Flex, on appelait ça un "model locator", je ne sais pas si c'est une terminologie reconnue.

Discussions similaires

  1. du bon usage de ONCLICK
    Par devboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/05/2007, 15h52
  2. Bon Usage : Constructeur ou Load
    Par gridin dans le forum VB.NET
    Réponses: 1
    Dernier message: 10/05/2007, 07h48
  3. [Delphi - Firebird] Comment faire bon usage des transactions?
    Par Lili21 dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 07/05/2007, 20h59
  4. Quel est le bon usage des fichiers "*.bpk" ?!
    Par bnadem35 dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/09/2006, 17h31
  5. [xml] bon usage du xml
    Par Jeddo dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 02/05/2005, 16h49

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