State Machine
JavaScript 🟡 MidType : 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">39;idle39;,
transitions: {
idle: { START: class="str">39;loading39; },
loading: { SUCCESS: class="str">39;success39;, ERROR: class="str">39;error39; },
error: { RETRY: class="str">39;loading39; },
},
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.