switch-case

原创 2013年12月06日 00:10:13

看见长串的switch-case,而且里面基本没有处理什么的,就浑身不舒服。但是项目长年累月,这个代码是不让动了,就让我吐槽下吧。

switch-case大致分为以下几种(根本原因也就一种)

1、case某个消息ID,发往的模块ID=X;

这个看起来清爽,基本实际情况是:

case某个消息ID

case某个消息ID

case某个消息ID

case某个消息ID

case某个消息ID

case某个消息ID

case某个消息ID

case某个消息ID

case某个消息ID

case某个消息ID,

发往的模块ID=X;

叹气,我一同事要添加12个ID,崩溃的问我,switch-case能不能有范围?

其实某个ID发往某个模块,模块ID都是确定的,完全可以写入map,或者数组,还不费事。


2、case某个ID,调用某个函数(C函数)。

3、花哨点,将case弄成宏,宏里面是模板,模板用消息ID实例化模板。--明显的过度使用模板嘛!

唯一的不同时函数的传参不同。


回来的路上,我就想,怎样简单方便的将这些函数装入map。暂时没找到方法。

不过,乖乖,你的分发函数的传参不是都一样的吗?多余的函数谁整出来的?还不就是通过这个分发函数的传参。那些函数明明可以让传参相同的嘛。


--------------------------------------------------------------------------------------------------------

不过,有什么办法,可以简单的通过消息ID立马就找到某个参数不同的函数呢?


1、之前见到有个使用的方法是,调用存储结构。让用户调用接口之前把参数放在一个结构里,之后根据消息id查询存储结构名称以及调用该存储结构所需要的参数。再调用sql方法。
不过各种参数怎么可以放入到一个结构中呢?这个是这样处理的。客户端发送的消息是字符串,我们根据消息ID,将字符串进行解析,将各个参数恢复成enum、long、bool等,没有其他复杂的class类型啦(最多有string,这个记不得了)。那个结构中有保存参数名对应参数类型,相应的类型有相应的map,这样便可以找到了。

那一般的代码里面应该如何使用呢?我现在想到的就是宏与连接符。验证后再说吧~




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

switch……case练习

switch case语句详解---连C++ Primer都会出现的语法错误

CSDN大牛较多,本人小白,若交流,本人欢迎,若言语偏颇,请绕行。 这二天,工作比较空闲,就看了一些基础的C++语法知识,收获颇多,下面只讲switch  case语句的一些语法细节。请大家坚持看完...

聪聪工作室---插入日期数据小技巧switch-case

在java开发过程中,经常会碰到需要插入日期数据,一年或很多年的数据,下面是我写的一个插入2017年一整年的数据的代码: Electraicors electraicors = new ...

Java学习之switch……case使用

switch……case 基本语法,简单用法package basis.day02; /** * switch(变量){ * case 变量值: * 执行语句; ...

C++ switch-case语句应用经验讲解

在C++编程语言中,存在着一些判断语句,比如if,C++ switch-case语句等等。我们在这篇文章中会针对C++ switch-case语句的基本使用方法进行详细的介绍,希望能给大家带来一些帮助...

Thinking in Java 第四版本--第3章练习题答案--for,break,switch,case,default

(1)写一个程序,打印出1到100间的整数 /****************** Exercise ****************** * Write a program that pri...

【C#基础知识点】——结构(if else-if、switch-case)

If if 语句: if(判断条件) { 执行的代码; } 判断条件:一般为关系表达式 或者 bool 类型的值;执行过程: 当程序运行到 If 处, 首先判断 If 所带的小括号中的判断条...
  • Joinl
  • Joinl
  • 2017-04-27 19:32
  • 206

c#——switch case语句

c#——switch case语句 c#中的switch case语句有三种结构,具体形式如下图所示: (1)Switch的第一种结构:(如例1) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)