解耦

28 篇文章 0 订阅
5 篇文章 0 订阅
这篇博客探讨了一种代码重构的方法,旨在提升代码的灵活性和可扩展性。原有的`addData`函数被改造成`addDataAbstract`,通过获取白名单和公司名称来解耦对特定表的依赖。此外,不再硬编码从特定模块获取跟进时间,为未来的扩展打下基础。
摘要由CSDN通过智能技术生成
/**
 * 假设未来不同的模块要增加或者删减跟进时间字段,就得动这边的代码,也就是说,这里每一行的灵活性,都不足
 * 可以改成getTableWhiteNameAndKey,返回可通过的表、对应的公司名称
 * @param $rs
 * @param $table
 * @return mixed
 */
private function addData($rs,$table){
    if($table=='customer'||$table=='wdxsc'||$table=='customer2'||$table=='mqxq'||$table=='jjfa'||$table=='baojia'||$table=='shidan'){
        switch ($table){
            case 'customer':
                $gsmc = $rs['name'];
                break;
            case 'customer2':
                $gsmc = $rs['name'];
                break;
            case 'wdxsc':
                $gsmc = $rs['gsmc'];
                break;
            case 'mqxq':
                $gsmc = $rs['khmc'];
                break;
            case 'jjfa':
                $gsmc = $rs['khmc'];
                break;
            case 'baojia':
                $gsmc = $rs['khmc'];
                break;
            case 'shidan':
                $gsmc = $rs['khmc'];
                break;
        }

        $userLastInfo = m('aaa')->getUserLastTime($gsmc);

        $rs['LastTime'] = $userLastInfo[0]['LastTime']===null?'':'已'.$userLastInfo[0]['LastTime'].'天';

        return $rs;
    }
}

 

 

 

/**
 * 如果这个表在白名单,那么拿到对应的公司名称字段,得到公司名称值
 * @param $rs
 * @param $table
 * @return bool
 */
private function addDataAbstract($rs,$table){
    $whiteTableAndGsmc = $this->getWhiteTableAndGsmc($rs,$table);
    if(empty($whiteTableAndGsmc)){
        return $rs;
    }

    $genjinLastTime = $this->getGenjinLastTimeByGsmc($whiteTableAndGsmc);

    $rs['genjinLastTime'] = $genjinLastTime;

    return $rs;
}

 

调整后该函数可以和具体的表解耦,不需要关心具体是哪些表可以通过白名单,只要有办法提供一个公司名就行了。

另外,通过公司名称拿到一个跟进时间字段,具体从哪里拿,也不必写死从某个模块的某个方法读取,未来可以扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值