Mi máquina de estado de nivel superior tiene algunos estados y bordes. Llamaré a esto la máquina de estado principal.
A ----> B ----> C
Cualquier estado dentro de la máquina de estado principal también puede ser una máquina de estado. Llamaré a estos niños máquinas de estado.
___________
/ \
A ----> | B0->B1->B2 | ----> C
\____________/
Si la máquina de estado principal pasa de A a B, la máquina de estado de B se hace cargo. Una vez que B termina de ejecutarse, ¿cómo debería ceder el control a la máquina de estado principal y pasar al estado C? ¿Qué patrón de diseño usas?
Si se está preguntando, tengo máquinas de estado de niños dentro de máquinas de estado de padres porque mi proyecto exacto es bastante complejo y es natural encapsular el funcionamiento interno de un estado de niño.
MachineContainer
claseB
que contenga B0, B1 y B2 y cuando B2 termine, devuelva el control a su contenedor que luego pasa a C ... Sin embargo, nunca he intentado algo como esto. ¡Es un problema interesante!