Shionn::Blog()

Pattern Singleton en Java

Publié le 09 octobre 2025 Code JavaPatternSingleton

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.

Pattern déconseillé

synchronized getInstance