Sofiane Boumedine Lexique Dev

Pub/Sub

JavaScript 🟡 Mid

Type : 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.

pattern