代码大全读后杂记-02 为啥创建子程序(方法,函数)

人类是世界上最勤快的物种,人类也是世界上最懒的物种;当然,人类大多数的勤快的创造是为了让自己有机会懒。

为了耕种的方便,少留两滴汗多长两斤肉,发明了先进的机器;为了通讯的方便,少跑两里路,少死两只鸽子,发明了电报电话手机;为了节省程序员的脑细胞,发明了子程序!

PS:代码大全中的子程序(routine)就是C++中的函数(function),Java中的方法(method)~

Steve(此S非彼S,代码大全的作者哦)认为:抛开计算机本身,子程序也算得上是计算机科学中一项最伟大的发明了。



我们首先来看看创建子程序的正当理由吧~

降低复杂度
   可以将一些你容易忘记的细节隐藏起来,这样,一旦你写好某个子程序,在其他地方就只需要了解其功能而加以调用即可,毕竟,我们的脑袋存储空间有限;

引入中间、易懂的抽象
   很重要的一点,子程序的名字要起得好,否则这点的功能就要大打折扣了。将一些难懂晦涩的代码放置在子程序中,一方面便于阅读了解,另一方面也更加容易维护和修改;
   比如下面两块代码:
    if(a>b)
      return a;
   else return b;

   和 int maxNum=getMaxNum(a,b)
  比起来,显然第二个更加清楚,通常情况下子程序里的代码会更加复杂,你懂的
  
避免代码重复
   这也是我们上学时,老师在介绍C函数的时候常提到的子程序的功用,对于功能一致或类似的代码,最好是将它们提取到一个子程序里面。当然,对于具体的实现方法,你可以将这些重复的方法中相同的部分放到基类里面,而不同的放到子类里面;也可以让相同的代码放到一个新的子程序里面,在让其余的代码来调用之...

支持子类化
当你的子程序简单明了的时候,覆盖该方法的子类也会更加容易而不至于犯错~


隐藏顺序
将一些顺序执行的代码放置在子程序里面,因为这种顺序在大多数情况下没必要向外界公开

隐藏指针操作
指针操作通常容易让人犯难,所以,将它们放到子程序里面吧。另外,如果你想出不用指针的方法,那么直接修改该子程序即可,幸好java没有指针的困扰了...

提高可移植性
将不可移植的部分和可移植的部分分开,会在将来真的需要移植时让你倍感轻松...

简化复杂的布尔判断
和第二条有点类似,就是某写复杂难懂的布尔判断最好也放置在命名清晰的子程序中

改善性能
为了便于优化代码,请将你觉得写得一团糟的代码放到一起,这样以便以后重构方便,这也是经验活啊

确保所有的子程序都很小
当然,这点并不一定,关于子程序的长度把握,这也是一个经验活...好吧,这点当白说~





你可能感兴趣的:(函数)