- 99%的情况下,要把函数变小,只需要使用Extract Method(提炼函数)新函数。
- 函数有大量参数或临时变量。
- 尝试使用Extract Method(提炼函数),将会把大量参数或临时变量当作参数传递到新函数中。不可取!
- 运用Replace Temp with Query(以查询取代临时变量)来消除临时变量。
- 运用Introduce Parameter Object(引入参数对象)和Preserve Whole Object(保持对象完整)将过长的参数列表变得简洁。
- 如果仍有太多临时变量和参数,Replace Method with Method Object(以函数对象取代函数)。
- 条件和循环也是提炼的信号,可以使用Decompose Conditional(分解条件表达式)处理条件式,至于循环,可以分别将循环和其内的代码分别提炼到新的函数中。