王海鱼 发表于 2024-5-18 16:51:31

【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。

同一个方法里,多个BankOrderFlow对象...这像“shǐ”一样的代码

下面的 paymentQuery 方法坐落于我们lijianjin体系的LiJianJinPaymentQueryBizService。
这两个bankOrderFlow、orderFlow,... 乱花渐欲迷人眼的赶脚,但实在,这是像“shǐ”一样的代码。
https://img2024.cnblogs.com/blog/202192/202404/202192-20240428193904955-1512907481.png
 
 
 
 
无独有偶,bug来了

在我们的zhongtai-channel-provider, 上周出现并紧急fix了一个bug。竟然也是 此种情况 引发的bug。
 
先上截图。下图中这段代码,有 3 个 PayPaymentFlow 对象实例:payPaymentFlow、paymentFlow、payFlow。 这命名,与邻人家的三个孩子 大狗、二狗、三狗一样。
https://img2024.cnblogs.com/blog/202192/202404/202192-20240428194242629-1402234042.png
 
 
让我介绍一下我们紧急fix的bug。↓
我们在做内部重构时,不慎...,直接下面的改动吧。
https://img2024.cnblogs.com/blog/202192/202404/202192-20240428194311567-23444356.png
 
通过上面的diff,你能看出来发生了什么bug吗? 
看不出来的话,看下面fix后的diff,信赖你能看出来。
https://img2024.cnblogs.com/blog/202192/202404/202192-20240428194407856-1610736835.png 
 
bug是fix掉了。那么,谁又能保证将来不会再出现类似的bug呢?
 
因此,如何规避如许的bug?也就是说,如何重构呢?
 
重构要点

一个要点:将复杂的方法拆分为多个更小单元的方法,通过方法的封装来限制变量的作用域。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。