State
Architecture 🟡 MidDé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
Termes liés
En entretien
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.
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