Sofiane Boumedine Lexique Dev

Observer Pattern

JavaScript 🟡 Mid

Type : Pattern

Definition

Le pattern observer definit une relation un-a-plusieurs : quand un objet (subject) change d'etat, tous ses observateurs (observers) sont automatiquement notifies et mis a jour.

Analogie

Un abonnement newsletter : quand un nouvel article sort (changement d'etat), tous les abonnes (observers) recoivent un mail.

Exemple de code

class EventEmitter {
  #subs = new Map();
  on(event, fn) { (this.#subs.get(event) ?? this.#subs.set(event, []).get(event)).push(fn); }
  emit(event, data) { this.#subs.get(event)?.forEach(fn => fn(data)); }
  off(event, fn) { const s = this.#subs.get(event); if(s) s.splice(s.indexOf(fn),1); }
}

Cas d'usage

Implementer un systeme d'evenements personnalise pour decoupler les modules d'une application.

patterninterview-question