Sofiane Boumedine Lexique Dev

State Machine

JavaScript 🟡 Mid

Type : Pattern

Definition

Une machine a etats modelise un systeme avec un nombre fini d'etats et des transitions entre eux declenchees par des evenements. A tout moment, le systeme est dans un seul etat.

Analogie

Un feu tricolore : il est soit rouge, soit orange, soit vert, et il passe de l'un a l'autre dans un ordre precis.

Exemple de code

const machine = {
  state: class="str">'idle',
  transitions: {
    idle: { START: class="str">'loading' },
    loading: { SUCCESS: class="str">'success', ERROR: class="str">'error' },
    error: { RETRY: class="str">'loading' },
  },
  send(event) { this.state = this.transitions[this.state]?.[event] ?? this.state; }
};

Cas d'usage

Gerer les etats d'un formulaire (idle, validating, submitting, success, error) sans conditions imbriquees.

patterninterview-question