1 符号和症状

临时字段仅在某些情况下取得其值;在这些情况之外,字段为空。
08 代码坏味之滥用面向对象-2:临时字段 - 图1

2 病因

临时字段常常被创建,以用于需要大量输入的算法。为避免使用很多参数,程序员在类中为这些数据创建字段。这些字段仅仅在算法中有用,除此之外没有用。
这种代码不好理解:查看对象字段的值时,发现它们几乎总是空。
08 代码坏味之滥用面向对象-2:临时字段 - 图2

3 治疗

  • 抽取类: 把临时字段和操作它们的代码,放到单独的类中。也就是创建一个方法对象,以达成同样的结果,就像用方法对象替代方法一样。
  • 引入空对象:集成到检查临时字段值,以确定字段是否存在的条件代码处。

08 代码坏味之滥用面向对象-2:临时字段 - 图3

4 疗效

代码更清晰,组织得更好。