全局变量造成的耦合

        今天在修改一个前人的程序时,碰到这么一个问题。由于去掉了某个功能,我需要注释掉一个函数A,在运行中报了一个莫名其妙的错误,令我百思不得其解,万般无奈下,只好调试程序,最终发现问题出在一个全局变量上,这个值只有在那个被注释掉的函数内赋了一个合法值后,另外一个函数B才能顺利进行。在这里,两个函数通过这个全局变量耦合在了一起,我只考虑到注释掉函数A,却没有想到它的变化引起了全局变量的变化,进而引起了函数B的变化。因为全局函数是全局的,任何地方都可以访问,而这种访问往往也很难追踪,所以牵一发动全身也就不足为奇了。

        后来我想如果尽量把全局变量设为const,让其它地方只能读不能写,不就较少了各模块间的耦合了吗,但又发现,如果某一天我需要修改它的初始值,相关地方还是可能变化。所以难怪听说JAVA要取消万恶的全局变量

       其实从面向对象的思想考虑,一个独立不被封装的数据,也是不合理的.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值