Skip to content

Singleton

Problématique

Comment s’assurer qu’il n’existera pas plus d’une seule instance d’une classe donnée durant toute l’execution du programme?

Solution

class Singleton
{
	/**
	*	propriété de classe qui conservera l'unique instance de la classe
	*/
	static private $instance = null ;
 
	/**
	*	propriété publique qui fera office de constructeur pour l'extérieur
	*/
	static public function getInstance()
	{
		if(is_null(self::$instance))
		{
			self::$instance = new Singleton() ;
		}
 
		return self::$instance ;
	}
 
	/**
	*	Le constructeur a été déclaré private
	* 	par conséquent, il n'est plus possible d'instancier Singleton
	* 	de l'extérieur de la classe
	*/
	private function __construct()
	{
	}
}