У моего автомата верхнего уровня есть некоторые состояния и ребра. Я назову это родительским конечным автоматом.
A ----> B ----> C
Любое состояние внутри родительского конечного автомата также может быть конечным автоматом. Я назову этих детей государственными машинами.
___________
/ \
A ----> | B0->B1->B2 | ----> C
\____________/
Если родительский конечный автомат переходит от A к B, конечный автомат B вступает во владение. После завершения работы B, как ему следует отказаться от управления родительским конечным автоматом и перейти в состояние C? Какой шаблон дизайна вы используете?
Если вам интересно, у меня есть дочерние конечные автоматы в родительских конечных автоматах, потому что мой точный проект довольно сложен, и естественно инкапсулировать внутреннюю работу дочернего состояния.
MachineContainer
класс дляB
этого, который содержит B0, B1 и B2, и когда B2 завершается, он передает управление обратно в свой контейнер, который затем переходит в C ... Хотя я никогда не пробовал ничего подобного. Это интересная проблема!