猿问
下载APP

如何把我的switch优雅的写(我在这switch中有150多个case)

case "A.2.2":

// 车站出站量 统计期间各日累计 线路各车站分别列示

result.setDataList(indexData.getStationInformationList());

break;

case "A.2.3":

// 线路日均进站量 线路进站量/统计天数 计算

BigDecimal arrivalVolOfLine = new BigDecimal(Constants.ZERO);

// 线路进站量

if (indexData.getPassengerFlowMaintenance() != null) {

arrivalVolOfLine = indexData.getPassengerFlowMaintenance().getAcInboundVolume();

}


// 线路日均进站量

BigDecimal dailyAvg = new BigDecimal(Constants.ZERO);

if (statisticalDays.compareTo(Constants.ZEROBD) != Constants.ZERO) {

dailyAvg = arrivalVolOfLine.divide(statisticalDays, Constants.TWO, BigDecimal.ROUND_HALF_UP);

}

result.setData(dailyAvg.toString());

break;

case "A.2.40":

// 换乘站换乘量 统计期间各日累计 线路各车站分别列示

result.setDataList(indexData.getStationInformationList());

break;


weixin_让那风在身后吃惊_04128960
浏览 2064回答 3
3回答

大山深处的程序猿

建议把数据放到数据库或者redis或者内存里,再写个方法调用;150个case实在是有点坑爹

慕尼黑7377501

各种方法上定义一个高级接口, 每一个实现都做成一个实现, 这样, 模仿HttpServletDespatcher, 把case当做key, 只是需要用更多的类拆分当前这个超级方法, 当然, 扩展和修改会非常的简单.

柳太爷

用state模式代替switch-case
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答