Pattern Singleton en Java
J'ai écris cet article il y a une dixaine d'année au travail, mon chef m'as donné l'autorisation de partager cela sur mon blog.
Pattern conseillé
Généralement lorsque l'on souhait faire un singleton chargé au dernier moment (Lazy Instance) on conseille d’utiliser ce pattern :
public class MySignleton {
private static class MySingletonHolder {
private static final MySingleton instance = new MySingleton();
}
private MySingleton() {
// initialisation
}
public static MySingleton getInstance() {
return MySingletonHolder.instance;
}
}
Mais pourquoi utilise t'on ce pattern ? Ce pattern s'appuie sur le mécanisme de chargement de classe de java pour s'assurer à la fois l'instanciation unique et threadsafe de notre unique instance.