Event Emitter Pattern
JavaScript 🟡 MidDefinition
Pattern publish/subscribe ou un emetteur envoie des evenements nommes et des listeners s'y abonnent. Base de EventTarget (DOM) et EventEmitter (Node.js).
Analogie
Une radio : l'emetteur diffuse sur une frequence (evenement) et tous les recepteurs branches sur cette frequence captent le message.
Exemple de code
class Emitter {
#events = {};
on(evt, fn) {
(this.#events[evt] ??= []).push(fn);
}
emit(evt, ...args) {
this.#events[evt]?.forEach(fn => fn(...args));
}
}
const bus = new Emitter();
bus.on('data', console.log);
Cas d'usage
Communication decouple entre composants, bus d'evenements, architecture event-driven.
Anti-pattern
Ne jamais off() les listeners, causant des memory leaks et des callbacks zombies.