Singleton

Architecture 🟢 Junior

Definition

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