Pub/Sub
JavaScript 🟡 MidType : Pattern
Definition
Le pattern Publish/Subscribe est une variante de l'Observer ou les publishers et subscribers ne se connaissent pas directement. Un message broker (event bus) assure le decouplage complet.
Analogie
Un tableau d'affichage public : n'importe qui peut poster une annonce et n'importe qui peut la lire, sans se connaitre.
Exemple de code
const bus = {
events: {},
subscribe(event, fn) { (this.events[event] ??= []).push(fn); },
publish(event, data) { (this.events[event] ?? []).forEach(fn => fn(data)); },
unsubscribe(event, fn) { this.events[event] = this.events[event]?.filter(f => f !== fn); }
};Cas d'usage
Decoupler des modules qui ne doivent pas se connaitre, comme un module analytics et un module UI.