提炼子类(Extract Subclass)
类中的某些特性只被某些实例用到;新建一个子类,将上面所说的那一部分特性移到子类中
一、动机
你发现类中的某些行为只被一部分实例用到,其他实例不需要它们
二、做法
1、为源类定义一个新的子类
2、为这个新的子类提供构造函数
3、找出调用超类构造函数的所有地点。如果它们需要的是新建的子类,令它们改而调用新的构造函数
4、逐一使用Push Down Method和Push Down Field将源类特性移到子类去
5、Replace Conditional with Polymorphism
6、每次下移后,编译并测试