Вы можете прочитать этот вопрос, где я задаю о лучшей архитектуре для машинного приложения в качестве небольшой предыстории, хотя это не совсем необходимо, чтобы помочь мне с этим вопросом.
Мое понимание (особенно для реализации) конечного автомата немного молодое, и, возможно, ему немного не хватает, но я реализую это приложение как единое целое, и у меня есть место, где мне как бы нужно иметь вложенный автомат. В основном машина имеет несколько состояний высокого уровня (Холодный [он же только что запущен], Начало работы, Настройка, Готовность к запуску, Запуск, Отчетность, Сброс), но когда машина работает, она должна иметь свою собственную небольшую реализацию FSM для (Загрузочная линза, установочная кромка, измерительный клин, измерение округлости и завершенность [может быть еще что-то там]).
Мой вопрос заключается в следующем: следует ли мне встроить возможность иметь «вложенные состояния», когда у состояния может быть список подсостояний, и система может входить в эти подсостояния, а эти подсостояния могут возвращаться в родительские состояния? Или я должен просто поместить реализацию конечного автомата в состояние выполнения и сохранить их как два отдельных конечных автомата? Или ты думаешь, что я делаю или думаю что-то глупое и должен это переосмыслить?
Мысли, предложения, критика и советы приветствуются.