有限状态机,是一种抽象的理论模型,它能够把有限个变量描述的状态变化过程,以可构造可验证的方式呈现出来。比如,封闭的有向图。
有限状态机可以通过if-else,switch-case和函数指针来实现,从软件工程的角度看,主要是为了封装逻辑。
带有状态转移的有限状态机示例代码。
1STATE_MACHINE(){
2 State cur_State = type_A;
3 while(cur_State != type_C){
4 Package _pack = getNewPackage();
5 switch(){
6 case type_A:
7 process_pkg_state_A(_pack);
8 cur_State = type_B;
9 break;
10 case type_B:
11 process_pkg_state_B(_pack);
12 cur_State = type_C;
13 break;
14 }
15 }
16}
该状态机包含三种状态:type_A,type_B和type_C。其中,type_A是初始状态,type_C是结束状态。
状态机的当前状态记录在cur_State变量中,逻辑处理时,状态机先通过getNewPackage获取数据包,然后根据当前状态对数据进行处理,处理完后,状态机通过改变cur_State完成状态转移。
有限状态机一种逻辑单元内部的一种高效编程方法,在服务器编程中,服务器可以根据不同状态或者消息类型进行相应的处理逻辑,使得程序逻辑清晰易懂。

4356

被折叠的 条评论
为什么被折叠?



