Singleton

Architecture 🟢 Junior

Dé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.
#architecture#interview#gof#creational

← → au clavier pour passer d'une fiche à l'autre