从拉取百度报表业务得到的经验

   拉百度报表业务,是拉取各渠道业务之中的一个. 一大亮点是我们设计成了工厂模式,通过将所有的实现类@Autowired进入spring,然后再塞进map里,获取的时候通过渠道的tag取出对应的实现类.

 @Qualifier("gdtMediaVendorBizManager")
    @Autowired()
    public void setGdtDeliveryReportDataManager(MediaVendorBizManager mediaVendorBizManager) {
        putMap(mediaVendorBizManager);
    }


 /**
     * put managerMap
     *
     * @param mediaVendorBizManager
     */
    private void putMap(MediaVendorBizManager mediaVendorBizManager) {
        MANAGER_MAP.put(mediaVendorBizManager.withBusinessTagEnum().getTag(), mediaVendorBizManager);
    }

第二大亮点是, 百度报表分为搜索引擎和信息流,他俩的方法很相像,有不同的地方基本上是参数的不同.

这俩实现类可以抽取出公共方法,我之前想的是写一个 Component类,这里面写公共方法,

然后那俩实现类Autowired那个 Component类.这样做,不太好,因为凭空多出了一个Component类.

康x提出,说建一个抽象类,这个抽象类 implements 那个顶层接口.然后那俩原先的实现类继承这个抽象类.

然后在抽象类里,实现拉取报表方法,然后将那俩实现类不同的地方, 封装成抽象方法,在拉取报表那个接口方法中,调用抽象方法, 抽象方法就由那俩实现类来实现.

这样,那俩实现类根本不用实现拉取报表方法, 只由抽象类实现就好了,他俩只需要实现不同的参数封装方法.真正做到了代码解耦,和代码复用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值