一、函数的长度与命名
Robert C Martin:
每个函数都应该有一个描述性的名字,两三个单词的长度,这样能清楚地解释函数是干什么的。此外,函数应该只有零到三个参数。一份源代码文件应该读起来像一篇报纸的文章。报纸的文章通常以一个标题开头,紧接着是一个简单的概述段落,然后就全是增加细节的段落了。完美的文章是能读得流畅,而且不会感到枯燥。一份源代码文件也应该这样。高层的函数后跟着比较低层的函数,后面跟着一些更低层次的函数。如果可以的话,所有的函数都应该是向下调用。(就是高层的调低层的,低层的调更低层的,都是向下调用)。
二、为什么要把函数写短
1、过长的函数,阅读起来难以理解;
2、过长的函数,往往导致变量作用域很长,修改时难以控制波及;
3、过长的函数,说明职责很重,或者职责很杂,由此难以复用;
三、Android上如何写短
1、if/else、case 等等语句块,超过5行,考虑提取函数;
2、单个函数超过30行,应该拆分;
3、使用内部类处理各种listerner时,将操作外部类的代码抽取函数,作为外部类的成员函数;
4、各种ResponseHandler的onSuccess() / onFail()中,如果有操作外部类的数据、控件,将这些代码抽取函数,作为外部类的成员函数;
5、同一个类内部两个函数有冗余代码,应该将冗余部分抽取独立函数;
6、两个类之间有冗余代码,应该将冗余部分抽取独立工具类或者业务类;
四、目标
单个函数不超过20行。