日期:2014-05-20  浏览次数:20698 次

if...else if...高级问题
我在做个连接数据库的选择查询,用到了if...else   if...的嵌套,要是少还没什么,多了的话总觉得很傻,大家有什么办法可以不用if...else   if...的嵌套,但能达到判断的目的(不要和我说switch),比如定义个接口什么的

------解决方案--------------------
如果逻辑只能这样,一般在代码上是没区别的,就像多几个if else跟switch case没什么差别,关键还是自己把逻辑分清楚,怎样使判断最少且不会出错
------解决方案--------------------
比如我们写了一个处理账单的系统,其中有这样三个类:

public class Bill {//省略细节}
public class PhoneBill extends Bill {//省略细节}
public class GasBill extends Bill {//省略细节}


public double calculate(Bill bill) {
if (bill instanceof PhoneBill) {
//计算电话账单
}
if (bill instanceof GasBill) {
//计算燃气账单
}
...
}

-----------------------

public double calculate(PhoneBill bill) {
//计算电话账单
}

public double calculate(GasBill bill) {
//计算燃气账单
}

这种情况可以用多态来解决,不用if else if了.其他情况还没考虑到。不过lz说实在的多用几个if else if没人会说你傻,只要效率达到了就行。呵呵我不知道我这句话是不是很傻,胡说的啊。。:)