代码中过多if、else if语句会使代码维护和阅读带来麻烦,一般超过三个if就可以改为switch,超过十个可以改多态或者一些设计模式,下面是我利用map和多态来消除过多的if语句。
接口:
import java.util.Map;
public interface TableDataServer {
Map<String,Object> getData(Map<String, Object> map);
}
实现接口:
public class Tdb1 implements TableDataServer {
@Override
public Map<String, Object> getData(Map<String, Object> map) {
return null;
}
}
public class Tdb2 implements TableDataServer {
@Override
public Map<String, Object> getData(Map<String, Object> map) {
return null;
}
}
public class Tdb3 implements TableDataServer {
@Override
public Map<String, Object> getData(Map<String, Object> map) {
return null;
}
}
使用的入口:
private static Map<String, TableDataServer> serverMap = new HashMap<>(8);
//方法
static {
serverMap.put("Tdb1",new Tdb1());
serverMap.put("Tdb2",new Tdb2());
serverMap.put("Tdb3",new Tdb3());
}
public static void main(String[] args) {
String type = "Tdb1"
TableDataServer tableDataServer = serverMap.get(type);
tableDataServer.getData();
}