解决问题: 如题所示 大量的if else业务逻辑显得代码很臃肿 后期维护也不太好阅读 采用的是基于策略模式 + 工厂模式进行优化 这里零时写了个demo 仅供参考
抽取的公共接口:
public interface CommonService {
void commonMethod();
}
分别实现不同逻辑
public class CommonServiceImpl01 implements CommonService {
@Override
public void commonMethod() {
System.out.println("这是调用了IMedalService 实现01......");
}
}
public class CommonServiceImpl02 implements CommonService {
@Override
public void commonMethod() {
System.out.println("这是调用了IMedalService 实现02......");
}
}
public class CommonServiceImpl03 implements CommonService {
@Override
public void commonMethod() {
System.out.println("这是调用了IMedalService 实现03......");
}
}
工厂类
public class ServicesFactory {
private static final Map<String, CommonService> map = new HashMap<>();
static {
map.put("01", new CommonServiceImpl01());
map.put("02", new CommonServiceImpl02());
map.put("03", new CommonServiceImpl03());
}
public static CommonService getCommonService(String medalType) {
return map.get(medalType);
}
}
调用
public class Demo {
public static void main(String[] args) {
CommonService service01 = ServicesFactory.getCommonService("01");
service01.commonMethod();
System.out.println("-------------分割线-------------");
CommonService service02 = ServicesFactory.getCommonService("02");
service02.commonMethod();
System.out.println("-------------分割线-------------");
CommonService service03 = ServicesFactory.getCommonService("03");
service03.commonMethod();
System.out.println("-------------分割线-------------");
}
}
结果