Observer Pattern
JavaScript 🟡 MidType : 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.