Design pattern:Singleton

De WIKI.minetti.org
Révision de 7 avril 2016 à 16:23 par Jp (discussion | contributions) (Page créée avec « == 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. == Diagramme de classes == Fichier:... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

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.

Diagramme de classes

Singleton.gif

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) {
			instance = new Singleton();
		}
		return instance;
	}

}

Variante

Le singleton n'est pas adapté pour des applications multithreads. Dans ce cas, il faut utiliser le pattern verrouillage à double tour.