我们目前有一台状态机可以执行以下类似操作。
Switch(state)
{
Case A:
DoA();
state = B;
break;
Case B: DoB();
state = C;
break;
Case C: if(condition)
state = A;// Start from A again
else
state = D;
break;
.... more states
}
作为一个团队,我们决定摆脱状态机,现在我正在努力使代码尽可能线性化。我们使用c ++。
实现这一目标最优雅的方法是什么?我正在考虑将代码作为单个函数并再次调用相同的函数,但我不满意递归调用它。
有什么想法吗?