java 实现接口参数


    /**
     * 定义一个 接口类 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;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值