Service Locator

Architecture 🟡 Mid

Definition

Registre central qui fournit des services a la demande. Considere comme un anti-pattern car il cache les dependances au lieu de les rendre explicites.

Analogie

Les Pages Jaunes : tu cherches un plombier sans savoir lequel tu auras. Le probleme : tu ne vois pas les dependances.

Exemple de code

class ServiceLocator {
  static #services = new Map();
  static register(name, svc) { this.#services.set(name, svc); }
  static get(name) { return this.#services.get(name); }
}

Cas d'usage

Legacy code ou l'injection de dependances n'est pas disponible.

Anti-pattern

Ce pattern EST l'anti-pattern : dependances cachees, tests difficiles, couplage au locator.
#architecture#interview#anti-pattern