我想谈一谈这个话题是因为我的上一篇博客在 ITEye 上有一些朋友回复,说 if-else 过多的分支可以使用 switch 或者责任链模式等等方式来优化。确实,这是一个小问题,不过我们还是可以整理一下这个小问题的重构方式。
为什么要优化?
你没有看错。这是要放在第一条谈论的。
有许多人会说,叠起来一堆 if-else 分支,代码就不优雅了。可是,怎样去定义 “优雅” 的概念呢?再退一步说,即便不 “优雅”,又有什么问题?
对于这样一段再普通不过的代码:
int code; if("Name".equals(str)) code = 0; else if("Age".equals(str)) code = 1;
[……]阅读全文