当一个类有很多方法希望将它们“提拔”到基类以供同层次的其他类使用时,会经常使用该重构。下面的类包含两个方法,我们希望提取这两个方法并允许其他类使用。
public class Dog {
public void eatFood() {
// eat some food
}
public void groom() {
// perform grooming
}
}
重构之后,我们仅仅将需要的方法转移到了一个新的基类中。这很类似“Pull Up”重构,只是在重构之前,并不存在基类。
public class Animal {
public void eatFood() {
// eat some food
}
public void groom() {
// perform grooming
}
}
public class Dog extends Animal{}