Singleton
Architecture 🟢 JuniorDéfinition
Pattern qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global. Souvent considère comme un anti-pattern en contexte d'injection de dépendances.
Analogie
Le président 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 données ou logger quand on ne dispose pas de conteneur DI.
Anti-pattern
État global cache qui rend les tests unitaires impossibles et crée du couplage fort.