Singleton
Architecture 🟢 JuniorDefinition
Pattern qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'acces global. Souvent considere comme un anti-pattern en contexte d'injection de dependances.
Analogie
Le president d'un pays : il n'y en a qu'un seul a la fois, et tout le monde sait comment le contacter.
Exemple de code
class DB {
static #instance;
static getInstance() {
if (!DB.#instance) DB.#instance = new DB();
return DB.#instance;
}
}
Cas d'usage
Connexion base de donnees ou logger quand on ne dispose pas de conteneur DI.
Anti-pattern
Etat global cache qui rend les tests unitaires impossibles et cree du couplage fort.