物极必反,滥用闭包的结果就是回归结构化编程

烦透了闭包。目前在修改一个项目,该项目的原始代码中使用了大量的闭包。一个套一个,甚至套了三四层,那函数啊,那局部变量啊,叫一个多啊,那执行流程啊,叫一个乱啊。

下面是个draw函数,730行,把它的结构提取出来,有下面的树:

draw             15变量
  function0    1变量
  function1    13变量
    function11
    function12
    function13
    function14
      function141
      function142
    function15
      function151
        function1511
    function16
      function161
    function17
    function18
    function19
    function1A
  function2
  function3    8变量
    function31
    function32
  function4    26变量
    function41
    function42
    function43
    function44
    function45
    function46
    function47
    function48

如果只看draw作用域,那么draw下的15个变量对于从函数function0-function48来说就是外部变量。而对于function41-function48来说,外部变量就有26+15=31个。

这不就是最古老最邪恶的结构化编程的变种吗!

对这个函数来说,大量使用闭包,存在三个问题:

·阅读难——执行流程上串下跳的;

·调试难——调用栈结构层次就像天书一样;

·重构难——外部变量太多。

 

转载于:https://www.cnblogs.com/xiaotie/archive/2010/06/04/1751704.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值