1.背景:
在项目经常会遇到因为不同的条件执行不同的方法,当类型比较多的情况下,代码维护起来比较痛苦,并且会有大量的if-else判断。这样不管是后期的需求迭代还是别人接手代码,那都是相当的自闭。。。
2.反面教材:
首先我们先看下面一段代码,这边采用大量的状态if else 判定
if ("AType".equals(tier)) {
Map<String, Object> mapPar = new HashMap<String, Object>();
mapPar.put("tier", tier);
mapPar.put("tierStr", "");
mapPar.put("tierStrOther", "");
ApiResponse<List<Govdep>> govdepListApi = accountClient.getGovdepList(mapPar);
if (govdepListApi.getStatus() == 200) {
govdepList = govdepListApi.getBody();
}
return govdepList;
} else if ("AType".equals(tier)) {
Map<String, Object> mapPar = new HashMap<String, Object>();
mapPar.put("tier", "");
mapPar.put("tierStr", tier);
mapPar.put("tierStrOther", "");
ApiResponse<List<Govd