首页/开发/代码质量与评审速查/完整示例:一次条件逻辑重构的前后对照
重构手法62 条

完整示例:一次条件逻辑重构的前后对照

把坏味道与手法串成一次完整重构:从「长函数 + 重复 switch + 深嵌套」到「卫语句 + 多态 + 命名函数」;每一步保持测试绿灯,提交历史可逐步回溯。

起点坏味道过长函数、重复 switch、嵌套条件
手法序列Extract Function → Guard Clauses → Replace Conditional with Polymorphism
验收全量测试通过、行为对照一致

重构步骤(每步一提交)

重构步骤(每步一提交)
1. 补 characterization test 锁定现状行为
2. Extract Function:拆出三个命名阶段
3. Guard Clauses:边界提前返回,主干去嵌套
4. Replace Conditional with Polymorphism:按类型拆类
5. 删除旧分支与临时函数,跑全量测试
提交粒度是小步回滚的前提:每一步都对应可解释的单一动机,评审与定位都更简单。

易错点

  • 跳过行为锁定直接改结构:边界行为变化无感知
  • 多步并作一次提交:红灯时无法定位是哪一步引入

数据来源与参考

  • 《重构》第 2 版 · 第 1、3、10 章(组合范例)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌