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练习

  • 2017年04月13日 11:48
  • 5KB
  • 下载

如何干掉那又丑又长的switch..case语句

1、前言     在实际的编程中,我们经常会使用到switch..case语句,这通常也是对一长串if..else if语句的优化。对于一些简单的情况(只每个case代码中代码长度不会很长,而且ca...
  • acaiwlj
  • acaiwlj
  • 2015年10月27日 09:41
  • 2435

java中使用switch-case的用法及注意事项超全总结

今天陈红军老师在用到switch的时候,这种设计到最基本的内容,可能忘记它的一些基本语法,出现了一些错误,所以即兴从各种资料查询总结了下面的内容,希望可以帮助那些正在困扰switch错误和各种细节问题...

C语言基础之分支结构—if...else—elseif—switch...case

为这段时间学习基础的总结。。

switch……case不能匹配字符串的方法

思路:         将字符串添加到map容器中         然后比较字符串名 获得该字符串所对应的索引值         在Switch中使用这个索引值判断        在std...

每天学习一算法系列(12) (求1+2+…+n,不能使用乘除法,for、while、if 、else、switch、case 等关键字以及条件判断语句)

题目:   求1+2+…+n. 要求不能使用乘除法、for、while、if 、else、switch、case 等关键字以及条件判断语句(A?B:C).   题目来源于:http://to...
  • yuucyf
  • yuucyf
  • 2011年05月06日 18:13
  • 4356

switch case 语句要注意!!!

c语言中的switch case 语句相比大家也是非常的清楚的。

switch case 语句内部变量定义

switch case语句是非常常用的语句,入门的码农也知道是做什么的。 但关于switch case内定义变量的问题,网上的很多博文都有谬误,在这里我写一下对这个语句的了解。 一 先看合...
  • neuwyt
  • neuwyt
  • 2015年10月08日 08:27
  • 2811
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:switch-case
举报原因:
原因补充:

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