1、数据与操作的分离
数据保存到数据库中。
2、面向对象的思想。
当面对很多种类型的消息等做不同的操作,但是不同消息整体处理流程是一致,这个时候不用swtich case一个一个列举出来处理。
typedef (int *msgProc)(void* msg);
typedef struct aMsgIdProc
{
int MsgId;
msgProc func;
};
定义一个全局的所有消息的数组,
int funA()
{
}
int funB()
{
}
aMsgIdProc g_MsgIdProc[] = {
{0,funA},
{1,funB},
}
接收到消息之后则轮循匹对执行相应的id的注册函数;或是消息Id即为数组下标直接执行注册函数更加快捷。
这个如果需要增加消息类型并执行相应的处理,不需要修改处理的流程或是增加case等,只需要在全局数组中增加一个id和注册处理函数。
但是,缺点是需要定义一个大的全局数组。
阅读(1035) | 评论(0) | 转发(0) |