State
Architecture 🟡 MidDefinition
Permet a un objet de modifier son comportement quand son etat interne change. L'objet semble changer de classe.
Analogie
Un distributeur de boissons : son comportement change selon qu'il attend une piece, a recu 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 etats pour workflows (commande, paiement), connexions reseau, UI.
Anti-pattern
Gros switch/case sur l'etat au lieu d'encapsuler le comportement dans des classes d'etat.