Type: concept
Confidence: 0.90
Created: 2026-04-25
Updated: 2026-04-25
Tags: 重构代码优化software-engineeringAI工程

重构目录

概述

重构目录是 Martin Fowler《重构》(第2版)中的一份精选重构手法集合,为开发者提供了改善现有代码设计的具体方法。

关键内容

  1. 使用方法:
  2. 识别代码中的异味(坏味道)
  3. 查找对应的重构手法
  4. 按照步骤执行
  5. 每步完成后进行测试

  6. 核心重构技术:

  7. Extract Method(提取方法)
  8. Inline Method(内联方法)
  9. Extract Variable(提取变量)
  10. Inline Variable(内联变量)
  11. Rename Variable(重命名变量)
  12. Change Function Declaration(变更函数声明)
  13. Encapsulate Variable(封装变量)
  14. Introduce Parameter Object(引入参数对象)
  15. Combine Functions into Class(组合函数到类)
  16. Split Phase(分割阶段)

  17. 异味到重构的映射:

  18. 长函数 → Extract Method、Replace Temp with Query
  19. 重复代码 → Extract Method、Pull Up Method、Form Template Method
  20. 大类 → Extract Class、Extract Subclass
  21. Feature Envy → Move Method、Move Field
  22. 基础类型沉迷 → Replace Primitive with Object、Replace Type Code with Class
  23. 长参数列表 → Introduce Parameter Object、Preserve Whole Object
  24. 数据泥团 → Extract Class、Introduce Parameter Object
  25. switch语句 → Replace Conditional with Polymorphism
  26. 臆想泛化 → Collapse Hierarchy、Inline Class、Remove Dead Code
  27. 死代码 → Remove Dead Code

  28. 实施策略:

  29. 分阶段推进:快速收益→结构改进→架构改动
  30. 阶段A:快速收益(低风险,高价值)- 重命名变量、提取重复代码、删除死代码
  31. 阶段B:结构改进(中风险)- 从长函数提取方法、引入参数对象、移动方法
  32. 阶段C:架构改动(高风险)- 用多态替代条件分支、提取类、引入设计模式

  33. 安全准则:

  34. 修改 → 测试 → 通过?→ 提交 → 下一步
  35. 每次只做一个小改动
  36. 保持改动最小化
  37. 保证测试始终通过

  38. 高级重构技术:

  39. Move Method(移动方法)
  40. Move Field(移动字段)
  41. Replace Primitive with Object(用对象替换原语)
  42. Replace Temp with Query(用查询替换临时变量)
  43. Decompose Conditional(分解条件)
  44. Consolidate Conditional Expression(合并条件表达式)
  45. Replace Nested Conditional with Guard Clauses(用卫句替换嵌套条件)
  46. Replace Conditional with Polymorphism(用多态替换条件)
  47. Introduce Special Case(引入特例)

来源

相关