Salut

Je m'intéresse au pattern singleton (pour obtenir seulement une instance de classe) et j'ai dû mal à comprendre son fonctionnement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class Singleton {
	private static Singleton instance;
 
	private Singleton() {}
 
	public Singleton getInstance() {
		if (instance == null) {
			instance = new Singleton();
		}
		return instance;
	}
}
Ce qui me pose problème : j'ai bien compris le principe de la méthode avec le test pour s'assurer de l'unicité de l'instance mais la variable instance de type Singleton est de type static.
Du coup même si l'on créée plusieurs instances (en enlevant le test if == null), cela ne devrait rien changer puisque vu que la variable instance est de type static, c'est donc une variable de classe, c'est à dire qu'elle est partagée par toutes les instances.
Donc au final, ça ne devrait rien changer si l'on enlève le if (instance == null), non ?

Merci