有限状态机的概念:
什么叫有限状态机呢? 举个例子
state_machine(Package _pack)
{
PackageType _type=_pack.getType();
switch(_type)
{
case type_A:
process_package_A(_pack);
break;
case type_B:
process_package_B(_pack);
break;
}
}
上述代码描述的就是一个有限状态机 只不过该状态机的每个状态都是相互独立的,状态之间没有相互转移。
下面这个状态机就是有状态转移的有限状态机
STATE_MACHINE()
{
State curState=type_A;
while(curState!=type_C)
{
Package _pack=getNewPackage();//获得一个新的数据包
switch(curState)
{
case type_A:
process_package_state_A(_pack);
curState=type_B;
break;
case type_B:
process_package_state_B(_pack);
curState=type_C;
break;
}
}
}
有限状态机的应用: