两个类有相似特性
为这两个类新建一个超类,将相同特性移至超类。
动机:
两个类以相同的方式做类似的事情,或者以不同的方式做类似的事情。
做法:
为原本得类新建一个空白的抽象超类。
运用pull up field,pull up method和pull up constructor body逐一将子类的共同元素上移到超类。
检查留在子类中的函数,看它们是否还有共通成分。如果有,可以使用extract method将共通部分再提炼出来,然后使用pull up method将提炼出的函数上移到超类。如果各个子类中某个函数的整体流程相似,可以使用form template method。