Сценарий:
У меня есть простой конечный автомат:
Удачный путь:
Uninitialized->Initialized->InProgress->Done
Несчастливый путь:
Uninitialized->Initialized->Error
Проще говоря, мне нужно вызвать переход (либо в состояние InProgress, либо в состояние ошибки) без внешнего события / триггера. Т.е. Инициализированное состояние должно немедленно привести к одному из этих состояний.
Вопросов:
- Можно ли вызвать переход состояния из Initialized.Enter ()?
- Я мог бы использовать государственную охрану для этого, но я бы предпочел не иметь нетривиальной логики в государственной охране (а инициализация вполне может быть сложной).
- Если это НЕ ОК, как я могу сделать это по-другому?
- Должен ли я просто вынести это решение из конечного автомата и заставить какой-либо другой компонент вызвать соответствующий переход? Но тогда разве мне не придется вызывать этот внешний компонент из Initialized.Enter ()? так это ничего не решает?