/**
* 定义一个 接口类 xxx ,用于调用PSSHeaderSelectService 接口的方法;
*/
public interface xxx {
/**
* yyy接口,用于具体调用
*/
void yyy(PssHeaderSelectQuery query, Map<String, List<Map<String, Object>>> result, PSSHeaderSelectService pSSHeaderSelectService);
}
/**
* xxx 实现 PSSHeaderSelectService 接口的方法 的具体调用
*/
public static final Map<String, xxx> opMap = new HashMap<>();
/**
* opMap 预先定义,不同的业务, 不同 key, 不同的实现
*/
static {
opMap.put(null,
/**
* yyy接口具体的实现,
* 并且是,通过不同的key , 不同的实现
*/
((a, b, service) -> {
service.cascadeExecuteFactory(a, b);
service.cascadeExecuteProcess(a, b);
service.cascadeExecuteRegion(a, b);
service.cascadeExecuteCountry(a, b);
service.cascadeExecuteCustomer(a, b);
}));
opMap.put(Pss.SelectType.factory, ((a, b, service) -> {
service.cascadeExecuteProcess(a, b);
service.cascadeExecuteRegion(a, b);
service.cascadeExecuteCountry(a, b);
service.cascadeExecuteCustomer(a, b);
}));
opMap.put(Pss.SelectType.process, ((a, b, service) -> {
service.cascadeExecuteRegion(a, b);
service.cascadeExecuteCountry(a, b);
service.cascadeExecuteCustomer(a, b);
}));
opMap.put(Pss.SelectType.region, ((a, b, service) -> {
service.cascadeExecuteCountry(a, b);
service.cascadeExecuteCustomer(a, b);
}));
opMap.put(Pss.SelectType.country, ((a, b, service) -> {
service.cascadeExecuteCustomer(a, b);
}));
}
@Override
public Map<String, List<Map<String, Object>>> cascadeExecute(String code, PssHeaderSelectQuery query, PSSHeaderSelectService pSSHeaderSelectService) {
Product product = productMapper.selectById(query.getProductId());
query.setProduct(product.getNpiProductName());
checkSourceDependProduct(query);
Map<String, List<Map<String, Object>>> result = new HashMap<>();
/**
* 使用 接口参数,不同的业务, 不同 key, 不同的实现
*/
opMap.get(code).yyy(query, result, pSSHeaderSelectService);
return result;
}
java 实现接口参数
最新推荐文章于 2024-07-29 17:23:29 发布