Le Singleton est un patron de conception (design pattern) qui garantit qu'une classe n'a qu'une seule instance dans tout le programme et fournit un point d'accès global à cette instance. Il fait partie des patrons décrits dans le livre de référence du « Gang of Four » (1994).
On l'utilise pour des ressources qui doivent rester uniques : configuration de l'application, connexion partagée à une base de données, journal d'événements (logger). Concrètement, le constructeur de la classe est rendu inaccessible et une méthode renvoie toujours la même instance, créée au premier appel.
Le Singleton est aussi l'un des patrons les plus critiqués : il crée un état global caché, complique les tests et couple fortement le code. Beaucoup d'équipes lui préfèrent l'injection de dépendances, qui obtient le même résultat de façon plus explicite.
Pourquoi ça compte quand on recrute
Le Singleton est une question d'entretien classique. Le bon signal n'est pas de savoir le coder, mais de savoir pourquoi il pose problème (tests, état global, concurrence) et par quoi le remplacer. Un candidat qui le présente comme une bonne pratique sans nuance a probablement une connaissance surtout théorique des design patterns.
