为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑1392957 2020-03-26 14:57:29
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;
查看完整描述

3 回答

?
慕尼黑7377501

TA贡献2条经验 获得超0个赞

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

查看完整回答
反对 回复 2020-09-07
?
柳太爷

TA贡献46条经验 获得超4个赞

用state模式代替switch-case

查看完整回答
反对 回复 2020-03-26
  • 慕尼黑1392957
    慕尼黑1392957
    我看了一下,我对state的解决理解是。我现在的行为只是得到一个值。那么我的实现类得150多个。这样更麻烦了 我这样理解对吗
  • 柳太爷
    柳太爷
    意思差不多,是挺麻烦的
  • 3 回答
  • 0 关注
  • 2907 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信