#spring-statemachine
#spring-statemachine
Вопрос:
11.5 Настройка переходов Мы поддерживаем три разных типа переходов: внешний, внутренний и локальный. Переходы запускаются либо сигналом, который является событием, отправленным в конечный автомат, либо таймером. Я не знаю, в чем разница.
Ответ №1:
Внутренний
Вы можете думать о внутреннем переходе как о самопереходе — из A в A; Исходное и целевое состояния всегда одинаковы.
Локальные и внешние
В большинстве случаев эти два эквивалентны, за исключением случаев перехода между супер- и субсостояниями. Локальный переход не вызывает выхода и входа в исходное состояние, если целевое состояние является подсостоянием исходного состояния или если целевое состояние является сверхсостоянием исходного состояния.
Пожалуйста, ознакомьтесь с официальной спецификацией UML (раздел 14.5.11 — Класс перехода, особенно — раздел ограничений, где формально определено вышеупомянутое), на основе которого реализован конечный автомат Spring.
Комментарии:
1. благодаря упоминанию, что конечный автомат Spring основан на спецификациях UML