Java 代码 switch 分支过多,怎么改写比较优雅呢?

查看 423|回复 38
PiersSoCool   
除非消息类型划分不合理,或者重复处理逻辑太多,否则不认为 switch 分枝多有什么问题。
cubecube   
别改了
playtomandjerry   
大规模用策略模式的时候,代码给别人看的时候容易一坨屎,尤其是还是那种 switch 不稳定,状态可能相互有关联的时候。。。
我个人倾向于不改 switch ,处理逻辑复杂的话,内容包在一个函数里面得了
shaozelin030405   
不要整花里胡哨的优化,妈的,自己过段时间都看起来费劲,后面人接手能头疼死。switch 内不要放逻辑,直接抽方法出去,已经是很清晰的写法了,简单明了
Ciallo   
switch 改成查表法(改成个 map ,根据 key 来看对应哪个情况),然后各个情况可以分成各个方法,好搞
jorneyr   




9000 行的方法与 1000 个 if 🐶
zoharSoul   
可以参考 MyBatis 的 TypeHandlerRegistry 把各种消息的处理器集中注册。
cwcc   
@ianEros 特别烦这种, 还不如 if else
dcncy   
我倒是觉得 switch 没啥不妥,但 switch 从代码缩进层面会缩进两次,使用 if else 也才一次。
如果过多的话,建议建个表,然后循环找表对应的方法。或者直接写个表驱动。
不想想太多的话,你只需要做到,让每个 case 的意义十分明确,case 里面的代码不要写逻辑,只调用一两条外面的方法就行了。
bxb100   
各自的方法名与其消息类型保持一致,或者加个前后缀。反射调用方法,两三行代码搞定。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部