Pattern Singleton

1. Problème initial

Comment réduire l’instanciation d’une classe à un seul objet ?

2. Solution associée

On crée une instance de la classe et on l’affecte à un attribut static.

3. Définition

On implémente le singleton en écrivant une classe contenant une méthode qui crée une instance uniquement s'il n'en existe pas encore. Sinon elle renvoie une référence vers l'objet qui existe déjà. Dans beaucoup de langages de type objet, il faudra veiller à ce que le constructeur de la classe soit privé, afin de s'assurer que la classe ne puisse être instanciée autrement que par la méthode de création contrôlée.

Concrètement, un singleton est très simple à mettre en place. Il est composé de 3 caractéristiques :
  • Un attribut privé et statique qui conservera l'instance unique de la classe.
  • Un constructeur privé afin d'empêcher la création d'objet depuis l'extérieur de la classe
  • Une méthode statique qui permet soit d'instancier la classe soit de retourner l'unique instance créée.




Le code associé à cette classe est donc :