一些粗浅的见解,希望大家一起来谈谈自己的体会(1)我觉得检验一个函数是否好的标准很简单,就是你是否反复使用它。如果你写了个函数,之后却再也没用过它,这个函数就不是个好函数。
(2)功能明确,参数不要太多。其实写这个帖子,是因为最近我写了个很通用的函数,带了几十个参数。因为很通用,每次我用的时候都会有点担心,都会回头重新检查这个函数的代码,害怕当时写这个函数的时候有些情况没考虑到。结果,本来我写这个通用函数是为了省时间,可是倒反更花时间了。以致于现在每次我要用这个函数,都会头疼畏惧。不知大家有同感否?

解决方案 »

  1.   

    函数功能尽量单一,目的性明确 易于重用
    代码不要太长,太长的要合理拆解细化,然后通过一些封装手段对外暴露接口
    参数不要太多,容易混淆,实在没有办法可以通过 定义结构体作为参数,或class或轻量对象实现
      

  2.   


    用结构体,其实还是很多参数,要考量的因素还是一样多,实质还是不变。重载的话,我用的是VBA,不支持,唉。
      

  3.   

    用对象来封装参数是个好办法:)<重构-改善既有代码的设计>
    中的代码坏味(bad smell)中就有函数包含过多的参数的情况,
    此时可以将参数封装为一个对象:参数对象
      

  4.   

    学学微软的API,一般参数不会太多,如果确实需要很多,用一个结构体可以节省很多参数
      

  5.   

    标志位可以通过定义 不同的枚举类型+位运算符 进行传递(类似MsgBox的参数):public enum hzTester
        hzA = 1
        hzB = 2
        hzC = 4
        hzD = 8
    end enumpublic sub test(byval tester as hzTester)
        if (tester and hzA) = hzA then
            ' ...
        end if
        if (tester and hzB) = hzB then
            ' ...
        end if
        ' ...
    end sub' 调用
    call test(hzA or hzC or hzD)
        
      

  6.   

    感谢各位热心参与讨论,我已将各位的高见总结在http://blog.csdn.net/slowgrace/archive/2009/02/17/3900237.aspx