标签:
在编程中,if-else和switch-case是很常见的分支结构,很少在程序中不用这些控制语句。但是不能否认,在一些场景下,由于分支结构过分长,导致代码不美观且不容易维护,在《重构》一书中,也将过长的switch语句当做了“坏味道”。例如当我们处理从网络接收到的数据时,往往会由于种类太多而写一长段的if-else或者switch-case,小弟就曾经在读别人处理网络数据的代码时,发现有50多条的if-else语句,导致函数代码非常长。因此小弟就在网上看各位高人的解决办法,有很多是支持使用if-else的,也有很多反对的,对于反对的,也有各种的解决方案,例如使用宏屏蔽if-else或者switch代码,使用函数指针列表等等。小弟在这里只介绍两种方法,一是使用函数指针列表,二是使用多态。
还希望各位大哥大姐,不惜赐教小弟其他的办法,多多交流。
1、函数指针列表,使用一个结构体将函数指针和一个标示指针的字符串封装起来,然后通过匹配相应的字符串,执行相应的函数。
测试代码:
2、使用面向对象的多态机制,将实现不同功能的子类继承父类,然后重载父类的方法,在重载的方法中实现具体的功能。
主函数:
父类:
子类A:
子类B:
小弟才疏学浅,还请各位大神多多指教。
http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=2030&uid=163485
使用函数指针和多态代替冗长的if-else或者switch-case
标签:
原文地址:http://www.cnblogs.com/findumars/p/5300417.html