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

这篇具有很好参考价值的文章主要介绍了【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

下面的 paymentQuery 方法坐落于我们lijianjin系统的LiJianJinPaymentQueryBizService。

这两个bankOrderFlow、orderFlow,... 乱花渐欲迷人眼的赶脚,但其实,这是像“shǐ”一样的代码。

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

 文章来源地址https://www.toymoban.com/news/detail-861312.html

 

 

 

无独有偶,bug来了

在我们的zhongtai-channel-provider, 上周出现并紧急fix了一个bug。竟然也是 此种情况 引发的bug。

 

先上截图。下图中这段代码,有 3 个 PayPaymentFlow 对象实例:payPaymentFlow、paymentFlow、payFlow。 这命名,与邻居家的三个孩子 大狗、二狗、三狗一样。

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

 

 

让我介绍一下我们紧急fix的bug。↓

我们在做内部重构时,不慎...,直接下面的改动吧。

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

 

通过上面的diff,你能看出来发生了什么bug吗? 

看不出来的话,看下面fix后的diff,相信你能看出来。

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

 

bug是fix掉了。那么,谁又能保证未来不会再出现类似的bug呢?

 

因此,如何规避这样的bug?也就是说,如何重构呢?

 

重构要点

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

 

到了这里,关于【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在IDEA同一个窗口中同时打开多个独立项目

    不知道大家在使用Intellij Idea的时候,有没有遇到过类似的问题?自己负责了很多项目,使用idea的时候,经常要在不通的项目代码之间切换来切换去。搜索代码的时候只能搜到当前打开的这个项目代码。 因为这些原因,一些零碎的小项目还是得用Eclipse开发。有时候也会用An

    2024年02月14日
    浏览(114)
  • Linux--多个源文件编译成同一个可执行文件

    写法一:不推荐 写法二、推荐 $@: 代表目标文件    $^: 代表生成目标文件的所有源文件

    2024年02月15日
    浏览(64)
  • git同一分支上多个commit合成一个的操作

    1、首先git log——查看当前分支的提交记录 ,想要把圈起来的commit合成一个, 2、开始合并,敲下面这个命令 git rebase -i commitId commitId即找出要合并的几个commit的前一个commit的ID -i 的参数是不需要合并的 commit 的 hash 值,这里指的是第一条 commit, 接着键盘摁下 i 键,我们就进

    2024年01月19日
    浏览(74)
  • kafka配置多个消费者groupid kafka多个消费者消费同一个partition(java)

    kafka是由Apache软件基金会开发的一个开源流处理平台。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 kafka中partition类似数据库中的分表数据,可以起到水平扩展数据的目的,比如有a,b,c,d,e,f 6个数据,某个topic有两个partition,一

    2024年01月22日
    浏览(86)
  • Autofac中多个类继承同一个接口,如何注入?与抽象工厂模式相结合

    需求: 原来是抽象工厂模式,多个类继承同一个接口。 现在需要使用Autofac进行选择性注入。 Autofac默认常识: Autofac中多个类继承同一个接口,默认是最后一个接口注入的类。 解决方案:(约定大于配置) :①工厂名默认4位字符 ② 命名Service的时候以工厂名开头 ③Autofac注入的时候先

    2024年02月10日
    浏览(61)
  • iis配置网站服务器配置端口,如何实现IIS多个网页同一个端口?

    在Internet Information Services (IIS) 中配置多个网站共用同一个端口是可能的,但需要进行一些特定的配置。以下是实现这一目标的一般步骤: 创建多个网站: 首先,您需要在 IIS 中创建多个不同的网站。每个网站应该有自己的根目录和内容。 绑定共享端口: 在每个网站的配置中

    2024年02月13日
    浏览(77)
  • Linux系统中判断多个设备使用了同一个IP地址,判断IP地址冲突的问题

    在Linux系统中,如果多个设备使用了同一个IP地址,就会发生IP地址冲突的问题。IP地址冲突会导致网络连接不稳定,甚至会导致网络中断。因此,在使用Linux系统时,需要及时发现和解决IP地址冲突问题。 下面介绍几种在Linux系统中判断IP地址冲突的方法。 1.使用ping命令 ping命

    2024年02月16日
    浏览(76)
  • 如何在rabbitmq中实现一个生产者,多个消费者,多个消费者都能收到同一条消息

    场景:用户登录,邀请其它用户进行视频会议,收到邀请的用户进入会议 rabbitmq实现思路: 选型:发布订阅模式(Publish/Subscribe) 一个生产者,多个消费者,每一个消费者都有自己的一个队列,生产者没有将消息直接发送到队列,而是发送到了交换机,每个队列绑定交换机,

    2023年04月25日
    浏览(53)
  • Java中不同对象调用该实例方法返回值是同一个地址空间吗?

    结论 不一定。 基本类型返回的是值 引用数据类型返回的是引用地址(是否同一个引用看是否用到常量池) \\\'==\\\' 基本类型比较的是两者的值是否相同 而引用类型比较两者的是引用地址是否相同 返回的值相同 \\\'==\\\'就为true 返回的引用地址相同 \\\'==\\\'就是true

    2023年04月25日
    浏览(54)
  • 跨应用连接同一个redis,从redis取缓存,对象属性值都为null

    ✅ 原因:idea本地代码实体类未进行代码混淆,docker代码实体类进行了混淆,导致对象存在,但是对象属性值为nul debug反序列化源码如下 读取到的字段为A,实体类中为具体的属性,不存在A,找到问题所在 ❓当时排查了如下几个方面 实体类是否进行序列化,序列化id是否指定

    2024年02月13日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包