不是很牛批的重构

记录工作中遇到的小重构

void fun(const type &data, const type2 &data2, type3 &data3){
if(!data.present) return; //单独调用fun时候跟fun1和fun2等价,但是,present为真,下面的都不执行
int freq = 0;
int band = 0;
get_freq_from_data(freq, data);
get_band_from_data2(band, data2);
save_to_data3(req, band, data3);
}
重用上面的代码变成两个接口:
void implement(const type &data, const type2 &data2, int &req, int &band){
if(!data.present) return;
get_freq_from_data(freq, data);
get_band_from_data2(band, data2);
}
void fun1(const type &data, const type2 &data2, bigtype &t1){
int freq = 0;
int band = 0;
implement(data, data2, freq, band); //present为真时候,比fun函数多执行了save_to_bittype
save_to_bigtype(req, band, t1.data3);
}

void fun2(const type &data, const type &data2, bigtype &t2){
int freq = 0;
int band = 0;
implement(data, data2, freq, band);
save_to_bigtype(req, band, t1.data3); //present为真时候,比fun函数多执行了save_to_bittype
}
然后在两个流程里调用fun1和fun2; 上面重构有问题:拆分函数降低了return语句的覆盖范围
总结:重构函数时候,注意return,注意for循环

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值