一个收到消息,分发给不同的处理方法的代码 消息类型已经有十几种了 使用 switch 来根据消息类型跳转不同的处理方法 这个 switch 看起来就很庞大了 请教一下,有没有很好的方式来重构这种情况的代码呢 谢谢~ Switch, 代码, 类型, 重构
十几种还不算多,如果能做成枚举的话,switch 枚举并无不妥。如果太多做不成枚举,或者稍微有那么一两个变异的分支,用 if else 也不丢人。你要知道,你后面的处理是分发不同方法,那么就算有 50 个,代码行也就 150 行,不多。 这里的重点,还是你的消息类型的命名规则。消息类型如果是依次罗列命名,超过 10 个就麻烦,超过 20 个就没法用了。基本上,超过 20 个类型,就该考虑对消息类型的名称进行归纳分级。如果消息类型有良好的命名规则,消息分发可能就不需要 swtich 、if else 了,十几行代码就能搞定。