《重构:改善既有代码的设计》中提到过一些代码的坏味道,针对这些坏味道,需要进行重构。
过长函数 long method
- 问题1:感觉需要以注释来说明什么的时候
- 解决方案:分解函数,把要说明的东西写进一个独立函数中,并 以其用途(而非实现手法)命名。
- 问题2:行数行数超过100行
- 解决方案:使用Extract Method, 找到函数中适合集中在一起的部分,将他们提炼出来形成一个新函数
- 问题3: 函数内含有大量的参数和临时变量
- 利用Replace temp with Query来消除临时变量
- **利用Introduce Parameter object 和 Preserve whole object则可以将过长的参数列变的更简洁一些
- **Replace method with method object
- 问题4:条件表达式比较多
- **解决方案:decompose conditional
- 问题5:循环比较多
- 解决方案:将循环和其内的代码提炼到一个独立函数中