Decorator

Architecture 🟡 Mid

Définition

Ajoute dynamiquement des responsabilités a un objet sans modifier sa classe. Offre une alternative flexible a l'héritage.

Analogie

Ajouter des garnitures sur une pizza : chaque garniture enveloppe la précédenté et ajoute son propre goût.

Exemple de code

function withLogging(fn) {
  return (...args) => {
    console.log('Call:', fn.name);
    return fn(...args);
  };
}
const save = withLogging(saveUser);

Cas d'usage

Ajouter logging, cache, validation ou authentification de façon transparente.

Anti-pattern

Empiler trop de décorateurs rendant le debug et la trace d'erreurs impossibles.
#architecture#interview#gof#structural

En entretien

  1. Explique le pattern Decorator.

    Il ajoute dynamiquement des responsabilités à un objet sans modifier sa classe, une alternative flexible à l'héritage — comme ajouter des garnitures sur une pizza, chacune enveloppant la précédente. On l'utilise typiquement pour ajouter du logging, du cache, de la validation ou de l'authentification de façon transparente.

  2. Quel piège apparaît quand on empile trop de décorateurs ?

    Le debug et la trace d'erreurs deviennent impossibles à suivre à travers toutes les couches empilées.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre