Chain of Responsibility

Architecture 🟡 Mid

Definition

Passe une requete le long d'une chaine de handlers. Chaque handler decide de traiter la requete ou de la passer au suivant.

Analogie

Le service client : operateur, superviseur, manager — ta demande remonte jusqu'a quelqu'un qui peut la traiter.

Exemple de code

class Handler {
  setNext(h) { this.next = h; return h; }
  handle(req) {
    if (this.canHandle(req)) return this.process(req);
    return this.next?.handle(req);
  }
}

Cas d'usage

Pipeline de validation, middleware Express, gestion d'evenements DOM (bubbling).

Anti-pattern

Chaine trop longue sans handler par defaut — la requete tombe dans le vide.
#architecture#interview#gof#behavioral