临时字段
概述
临时字段是代码异味的一种,指类中某些实例变量只在特定情况下被使用,而在其他时候保持未初始化或null的状态,导致对象状态难以理解和预测。
关键内容
- 特征识别:
- 实例变量只在部分方法中使用
- 字段只在某些条件下被设置
- 某些情况下的初始化过程很复杂
-
某些字段在对象生命周期中大部分时间为空
-
负面影响:
- 容易造成混淆:字段虽然存在但可能为null
- 对象状态难以理解
- 隐藏了条件逻辑的存在
- 增加了理解和维护的复杂性
-
可能导致运行时错误
-
重构策略:
- Extract Class:将临时字段相关的功能提取到新类
- Introduce Null Object:引入空对象模式
-
Replace Temp Field with Local:将临时字段改为局部变量
-
解决方案思路:
- 分析字段使用模式,确定哪些字段通常一起使用
- 将相关字段和方法分离到专门的类中
- 使用更清晰的条件逻辑或设计模式
来源
- Martin Fowler — 《重构:改善既有代码的设计》
- 代码异味 — 重构指导书
相关
- 代码异味 — 临时字段所属的异味类别
- 重构 — 解决方法
- Extract Class — 具体重构技巧
- 对象设计 — 相关概念
- 空对象模式 — 相关设计模式