软件设计重构秘笈4式-03降低方法

71 阅读1分钟

软件设计重构秘笈4式-03降低方法

概念

本文中的降低方法和前篇的提升方法整好相反,也就是把个别子类使用到的方法从基类移到子类里面去。

意图

降低方法就是把个别子类使用到的方法从基类移到子类里面去 如下代码所示,Animal 类中的方法fly只有在其子类Bird 中使用,所以最好的方案就是把这个方法移到子类Bird中。

案例

public interface Animal {

    public void fly();

}

public class Bird implements Animal{

    @Override
    public void fly() {
        System.out.println("bird fly...");
    }
}

public class Penguin implements Animal {

    @Override
    public void fly() {
        throw new UnsupportedOperationException("企鹅不会飞");
    }
}

重构

重构后的代码如下,同时如果在父类Animal中如果没有其他的字段或者公用方法的话, 可以考虑把fly方法做成一个接口,从而去掉Animal类。

public interface FlyAble {

    public void fly();
    
}

public class Bird implements FlyAble{

    @Override
    public void fly() {
        System.out.println("bird fly...");
    }
}

public class Penguin{
    // other function
}