Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1435250
  • 博文数量: 241
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2253
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-11 22:27
个人简介

--

文章分类

全部博文(241)

文章存档

2021年(3)

2019年(6)

2018年(1)

2017年(9)

2016年(21)

2015年(50)

2014年(125)

2013年(26)

我的朋友

分类: C/C++

2014-12-28 16:06:27

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和注册处理函数。

但是,缺点是需要定义一个大的全局数组。
阅读(1032) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~