第三章 函数
3.1 短小
函数要短小。
作者建议函数不超过20行。(我司建议不超过50行)
作者建议缩进不超过一层。(我司建议缩进不要超过4层)
3.2 只做一件事
函数应该只做一件事(函数功能要单一)
评判标准:能否再拆出一个函数。
3.3 每个函数一个抽象层次
函数中所有的语句要在同一个抽象级别上。
3.4 switch语句
作者建议:switch语句只隐藏在某个类中,用来创建多态对象,其他部分看不到。
3.5 使用描述性的名称
函数的名称要能够说清楚它的功能。
3.6 函数参数
函数的理想参数是0个。(函数参数越少越好)
不要使用输出参数。
3.6.1 一元函数的普遍形式
一元函数命名要清晰说明功能。
3.6.2 标识参数
不要将布尔值作为函数的入参。
3.6.3 二元函数
尽量将二元函数转为一元函数。
3.6.4 三元函数
三元函数一定要谨慎使用。
3.6.5 参数对象
函数参数过多时,应该考虑将参数封装为类。
3.6.6 参数列表
可变参数,可以考虑使用list替代。
3.6.7 动词与关键字
将函数用“动名(参数)词”形式命名。
3.7 无副作用
函数只做一件事。
不要使用输出参数。
3.8 分隔指令与询问
函数要么做一件事,要么回答一件事,不可得兼。
3.9 使用异常替代返回错误码
使用异常替代返回错误码,将错误处理代码从主路径分离。
3.9.1 抽离Try/Catch代码块
把try和catch的代码块抽出来,形成另外的函数。
3.9.2 错误处理就是一件事
3.9.3 Error.java依赖磁铁
使用异常替代返回错误码
3.10 别重复自己
消除重复的代码。
3.11 结构化编程
只要函数短小,可以偶尔出现return,break,continue。
3.12 如何写出这样的函数
把函数写好:先按照自己的思路写,然后重构。
3.13 小结
构成系统的函数应该干净利落地拼装到一起。