问题场景: 一个变量仅仅被赋值了一次,且妨碍了其他重构手法
问题代码:
double basePrice = order.getPrice();
return (basePrice > 1000)
使用场景:
- 作为“Replace Temp With Query”手法的一部分
- 某个临时变量被某个函数返回值所赋值
- 这个临时变量影响了其他手法的使用
优化代码:
return(order.getPrice > 1000);
内联化流程:
- 检查右边的返回值不会带来副作用(如返回意料以外的值)
- 尝试声明临时变量为final,确保只被赋值一次
- 找到临时变量的引用点切换为对应表达式
- 重构完之后,编译测试