代码的很多问题都来来源于“过长函数”,这时需要重新组织函数,以简化函数调用。常见的重构手法如下:
1)Extract Method。将一段相关的代码放进一个独立的函数中,并让函数名称解释该函数的用途。这是解决过长函数最常见的手法。
2)Inline Method。这个和Extract Method相反,如果提炼的函数并没有什么实质用途,可以用函数本体替换函数调用。
3)Replace Temp with Query。若程序中某个临时变量保存一个表达式的结果,则可以将表达式提炼到一个独立的函数中,然后将对临时变量的引用替换为对函数的调用。临时变量的问题在于它是局部的,而且只能在所属函数内使用,这常常是写过长函数的原因。把临时变量定义为函数,那么类中所有的函数都可以得到这份信息,这样可以减少写过长函数的可能了。
4)Introduce Explaining Variable。若程序中有个复杂的表达式,难以阅读且难以理解,则可以将该表达式放进一个临时变量中,以此变量名称解释表达式用途。
5)Split Temporary Variable.若程序中某个变量被赋值多次,则可以对这些赋值分别定义临时变量。
6)Remove Assignments to Parameters。程序中不应出现对非输出参数赋值的情况。
7)Replace Method With Method Object。若程序有个大型函数,使用了较多的局部变量,则可以定义一个单独的对象,将局部变量和函数放进单独的对象中,这样就将局部变量的使用变成对值域的使用了,并且可以将大函数分解为很多小函数了。
第(1),(2)是针对函数的定义,第(3),(4),(5)是针对函数中局部变了的使用,第(6)是针对参数的使用。
浙公网安备 33010602011771号