通过传入实现类名称调用各自的方法(策略模式)
环境:
Java 8
IDEA
背景:
多种批改类型,进行保存时有些方法不是共用的,这时会在一个类里进行大量的if…else判断,后续添加别的类型,修改很麻烦,于是利用传入不同的实现类名称去调用不同实现类的save方法。
前端:
传入后端调用实现类的名称:
后端:
创建统一的接口:
每个批改类型创建自己的实现类,取别名:@Service("MarketEndorseServiceImpl")
需要与前端传的一致,统一实现接口:BatchEndorseSaveService
实现save方法,在方法里写自己的逻辑代码。
这样就大体的实现了,调用代码:
String service = (String)queryMap.get("service");
BatchEndorseSaveService saveService = (BatchEndorseSaveService) SpringUtil.getBean(service);
saveService.save(queryMap);
这样就可以通过前端传的值来寻找对应的实现类,不用大量的if…else判断。