Използвам рамка без състояние (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() да завърши и след това да задейства машината да премине в следващото състояние.