第6章 重新组织函数

Extract Method(提炼函数) 你有一段代码可以被组织在一起并独立出来 将这段代码放进一个独立函数中 并让函数名称解释该函数的用途

Inline Method(内联函数) 一个函数的本体与名称同样清楚易懂 在函数调用点插入函数本体 然后移除该函数

Inline Temp(内联临时变量) 你有一个临时变量 只被一个简单表达式赋值一次 而它妨碍了其他重构手法 将所有对该变量的引用动作 替换为对它赋值的那个表达式自身

Replace Temp with Query(以查询取代临时变量) 你的程序以一个临时变量保存某一表达式的运算结果 将这个表达式提炼到一个独立函数中 将这个临时变量的所有引用点替换为对新函数的调用 此后 新函数就可被其他函数使用

Introduce Explaining Variable(引入解释性变量) 你有一个复杂的表达式 将该复杂表达式(或其中一部分)的结果放进一个临时变量 以此变量名称来解释表达式用途

Split Temporary Variable(分解临时变量) 你的程序有某个临时变量被赋值超过一次 它既不是循环变量 也不被用于收集计算结果 针对每次赋值 创造一个独立 对应的临时变量

Remove Assignments to Parameters(移除对参数的赋值) 代码对一个参数进行赋值 以一个临时变量取代该参数的位置

Replace Method with Method Object(以函数对象取代函数) 你有一个大型函数 其中对局部变量的使用使你无法采用Extract Method 将这个函数放进一个单独对象中 如此一来局部变量就成了对象内的字段 然后你可以在同一个对象中将这个大型函数分解为多个小型函数

Substitute Algorithm(替换算法) 你想要把某个算法替换为另一个更清晰的算法 将函数本体替换为另一个算法