Design pattern:Verrouillage à double tour
De WIKI.minetti.org
But
Permettre la gestion de l'instanciation d'une classe dont on veut s'assurer qu'il n'existera qu'une et une seule instance dans une application multithreads. Ce pattern est une variante du singleton.
Diagramme de classes
Code
public class Singleton { /** * L'instance du singleton */ private static Singleton instance; /** * Constructeur redéfini comme étant privé */ private Singleton() { } /** * Méthode permettant de récupérer l'instance du singleton */ public static Singleton getInstance() { if (instance == null) { newInstance(); } return instance; } /** * Méthode permettant d'instancier le singleton */ private synchronized static void newInstance() { if (instance == null) { instance = new Singleton(); } } }