比如一个函数用来获取文件大小,一个函数用来获取文件版本等信息,每个函数只做特定的事
问题也来了,如果这样的话每个函数都要去open这个文件,然后close……或者其他重复的事情,可能会浪费资源
当然这时候也许可以把所有代码放在一个函数里,但是这样感觉函数的就不够灵活了……上面说的只是打个比方,我想问的是像这种时候作为开发者应该考虑代码的可读性维护性呢还是考虑程序效率?

解决方案 »

  1.   

    像你说的这种情况,完全可以由一个函数完成嘛函数里多几个实参就行了,例如procedure getfile(filename:string;var size:int64;var bb:string;var dt:Tdatetime);
      

  2.   

    可以把取xx的函数做成:传入参数不是文件名,而是文件指针或句柄还有一种做法是,做一个空架子函数,只负责open,getxxx,close,具体getxxx取什么由函数指针(其实就是上面的函数了)来做的
    function getfile(filename:string;funGetXX:Tfunction(文件指针或句柄)):string;
      

  3.   

    一般情况下应优先考虑可读性维护性,比如你说的例子,为了少 open,close 几次,就把代码
    写在一个函数了,这样不但可读性差,不便维护,而且当程序仅需要获取文件大小,或获取文件
    版本信息时难道你还要另写一个函数?
    再说,少 open,close 几次,你看得出程序快多少?不要为了效率而效率。