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

AWT/Swing Java Discussion :

Singleton ou pas singleton ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut Singleton ou pas singleton ?
    Bonjour,

    J'aurai souhaité avoir vos éclairages sur une comparaison entre les deux codes suivant.

    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
    public class TestSingletonClass {
    	private static String strTestA;
     
    	private static String strTestB;
     
    	private static TestSingletonClass monInstance = null;
     
    	private TestSingletonClass() {
    		strTestA = "mon TEST a";
    		strTestB = "mon TEST b";
    	}
     
    	public static TestSingletonClass getInstance() {
    		if(monInstance == null) {
    			monInstance = new TestSingletonClass();
    		}
     
    		return monInstance;
    	}
     
    	public static void getStrings() {
    		System.out.println("strTestA : " + strTestA);
    		System.out.println("strTestB : " + strTestB);
    	}
    }
    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
    public class TestStaticClass {
    	private static String strTestA;
     
    	private static String strTestB;
     
    	static {
    		strTestA = "mon test A";
    		strTestB = "mon test B";
    	}
     
    	public static void getStrings() {
    		System.out.println("strTestA : " + strTestA);
    		System.out.println("strTestB : " + strTestB);
    	}
    }
    En usage intensif d'appel à la méthode "getStrings()", le premier cas est légèrement plus long que le second cas. (appels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TestStaticClass.getStrings();
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TestSingletonClass.getInstance().getStrings();
    )

    Mais en mémoire comment cela se passe ?
    Le deuxième code conserve avec la portion "static" d'initialisation des variables crée t'elle bien une seule fois les contenu des variables "strTestA" et "strTestB" en mémoire ?

    L'usage d'un singleton a t'il un quelconque intérêt dans le cas présent ?

  2. #2
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    Moi je ne vois aucun intérêt dans le cas présent... Ta méthode getStrings est static et donc accessible sans passer par une instance. Donc pas besoin d'instanciation.

Discussions similaires

  1. singleton pas tres clair
    Par horkets dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 30/07/2009, 22h01
  2. [JUnit] Singleton (Pas de constructeur publique)
    Par manube dans le forum Tests et Performance
    Réponses: 7
    Dernier message: 25/02/2009, 19h49
  3. [Language][DAO]Pourquoi pas des Singletons ?
    Par le Daoud dans le forum Langage
    Réponses: 11
    Dernier message: 04/05/2005, 09h16

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