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

本文探讨了降低方法,即如何将子类特有的行为(如Bird类的fly方法)从基类(Animal)移至子类,以提高代码的复用性和可维护性。通过重构示例展示了如何将fly方法转换为接口,简化Animal类的设计。
摘要由CSDN通过智能技术生成

软件设计重构秘笈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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值