状态机抽象后, 其实就是state与event的处理:
1.方案一,可以每个state创建一个class, 该class针对每个event有一个处理函数, 处理后返回一个下一个state的对象。
2. 方案二, 状态机其实本质上是处理每个state & event的组合, 简单的实现方式是
switch state:
{
case state1:
switch event:
{
case event1:
...
break;
case event2:
...
break;
...
default:
break;
}
case state2:
switch event:
{
case event1:
...
break;
case event2:
...
break;
...
default:
break;
}
...
default:
break;
}