下推场
问题
字段是否只在少数子类中使用?
解决方案
将字段移动到这些子类。
之前

后

为什么重构
尽管计划对所有类普遍使用一个字段,但实际上该字段仅在一些子类中使用。例如,当计划的特性未能实现时,就会出现这种情况。
这也可能由于抽取(或删除)类层次结构的部分功能而发生。
好处
改进内部类的一致性。字段位于它实际使用的位置。
当同时移动到多个子类时,您可以彼此独立地开发字段。这确实会造成代码复制,所以只有当您确实打算以不同的方式使用这些字段时才下推这些字段。
如何重构
在所有必要的子类中声明一个字段。
从超类中删除字段。