Предположим, что FSM имеет два состояния:1. S1 генерирует некоторые данные2. S2 нужны именно эти данныеТаким образом, предварительное условие S2 является постусловием S1.Этот псевдокод приходит мне в голову:
// method: changeState()...
switch(changeTo){
case "S2":
// done with existence verification...
S2 = stateFactory.byData(S1.getData());
FSM.changeState(S2);
break;
}
Это введет дополнительный аргумент для фабрики и может также сделать длинный переключатель с обработкой данных, где переключатель должен быть просто переключателем.Другим вариантом может быть определение изменения состояния на основе перехода, такого как changeFrom (состояние) и предоставление защиты и запуск необходимых действий, или просто проверка «предыдущего состояния» на фабрике при входе в S2.Ни один из них не слишком привлекателен.
Когда речь идет о разработке кода, где лучше всего осуществлять этот обмен данными?