Ma machine d'état de niveau supérieur a des états et des bords. J'appellerai cela la machine d'état parent.
A ----> B ----> C
Tout état dans la machine d'état parent peut également être une machine d'état. J'appellerai ces enfants des machines d'état.
___________
/ \
A ----> | B0->B1->B2 | ----> C
\____________/
Si la machine d'état parent passe de A à B, la machine d'état de B prend le relais. Une fois B exécuté, comment doit-il abandonner le contrôle à la machine d'état parent et passer à l'état C? Quel modèle de conception utilisez-vous?
Si vous vous posez la question, j'ai des machines à états enfants dans les machines à états parents parce que mon projet exact est assez complexe et il est naturel d'encapsuler le fonctionnement interne d'un état enfant.
MachineContainer
classe pourB
qui contient B0, B1 et B2 et quand B2 se termine, il passe le contrôle à son conteneur qui passe ensuite en C ... Je n'ai jamais vraiment essayé quelque chose comme ça. C'est un problème intéressant!