Я использую структуру без сохранения состояния (https://code.google.com/p/stateless/ ) для моделирования конечного автомата в моем приложении. Есть определенные состояния, которые должны выполнять некоторую логику, а затем немедленно переходить к следующему состоянию. Мне интересно, это хорошая практика, чтобы сделать это следующим образом:
var machine = new StateMachine<State, Trigger>(State.Idle);
machine.Configure(State.StateA)
.OnEntry(() =>
{
DoSomeStuff();
_machine.Fire(Trigger.TriggerB); // move to StateB
});
Это хороший дизайн FSM? Если нет, то какой подход лучше? Идея, которую я пытаюсь реализовать, состоит в том, чтобы иметь определенные состояния, которые автоматически переводят машину в следующее состояние без какого-либо внешнего кода, который ожидает завершения DoSomeStuff(), а затем запускает машину для перехода в следующее состояние.