State

Architecture 🟡 Mid

Définition

Permet a un objet de modifier son comportement quand son état interne change. L'objet semble changer de classe.

Analogie

Un distributeur de boissons : son comportement change selon qu'il attend une pièce, a reçu le paiement ou est en rupture.

Exemple de code

class Order {
  setState(state) { this.state = state; }
  next() { this.state.next(this); }
}
class PendingState {
  next(order) { order.setState(new PaidState()); }
}

Cas d'usage

Machine a états pour workflows (commande, paiement), connexions réseau, UI.

Anti-pattern

Gros switch/case sur l'état au lieu d'encapsuler le comportement dans des classes d'état.
#architecture#interview#gof#behavioral

En entretien

  1. Explique-moi le pattern State (à ne pas confondre avec le state de React).

    Il permet à un objet de modifier son comportement quand son état interne change, comme s'il changeait de classe, par exemple une machine à états pour un workflow de commande ou de paiement. On l'utilise pour des connexions réseau ou des UI avec des états distincts.

  2. Quel anti-pattern ce pattern remplace-t-il ?

    Un gros switch/case sur l'état, au lieu d'encapsuler le comportement propre à chaque état dans des classes dédiées. Comme un distributeur de boissons dont le comportement change selon qu'il attend une pièce ou a reçu le paiement.

Fiche mise à jour le 2026-09-27

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