模版方法模式

所谓模版方式模式:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势;当不变的和可变的行为在子类实现中混合在一起的时候,
不变的行为就会在子类中重复实现,我们通过模板方法模式把这些行为搬移到单一的地方,这样就可以帮助子类摆脱重复不变行为的纠缠。

1.超类

public abstract class BaseTest {
    /*
    问题是不变的,直接实现了
     */
    public void ask(){
        System.out.println("which is better? "+answer());
    }
    //答案是变化的,放在子类里面实现
    public abstract String answer();

}

2.子类1

public class ReedTest extends BaseTest {
    @Override
    public String answer() {
        return "reed";
    }
}

3.子类2

public class JuneTest extends BaseTest {
    @Override
    public String answer() {
        return "june";
    }
}

4.测试类

public class Client {
    public static void main(String[] args) {
        BaseTest reed = new ReedTest();
        BaseTest june = new JuneTest();
        reed.ask();  //which is better? reed
        june.ask();  //which is better? june
    }
}

---

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值