重构手法目录

课程涵盖手法一览

#手法课程类型难度
1提炼函数 (Extract Function)第04课基础
2把函数组装成类 (Assemble Methods to Class)第08课基础
3用查询来替代变量 (Replace Variable with Query)第09课基础
4去除原始类型偏执 (Remove Primitive Obsession)第20课中级⭐⭐
5用查询来替代函数参数 (Replace Parameter with Query)第21课中级⭐⭐
6用管道来替代循环 (Replace Loop with Pipeline)第22课中级⭐⭐
7用函数进行表达 (Express Intent with Functions)第23课中级⭐⭐
8用多态取代条件 (Replace Conditional with Polymorphism)第24课高级⭐⭐⭐
9变量作用域上移 (Move to Higher Scope)第20课基础

按目标分类

提升可读性

  • 提炼函数
  • 用函数进行表达
  • 用管道替代循环

提升可维护性

  • 去除原始类型偏执
  • 用查询替代变量
  • 用查询替代参数

消除条件逻辑

  • 用多态取代条件
  • 用枚举替代字符串比较

代码组织

  • 把函数组装成类
  • 变量作用域上移

重构安全守则

  1. 先有测试,再重构 — 没有测试的重构是危险的
  2. 小步提交 — 每做一步改动就运行测试
  3. 一次只做一种重构 — 不要混合多种手法
  4. 保持行为不变 — 重构不改变外部行为,只改善内部结构
  5. 善用 IDE — 现代 IDE 提供自动化重构工具