java 模板方法设计模式

抽象类体现的就是一种模板的设计模式,抽象类作为多个子类的通用模板,子类在抽象的基础上进行拓展、改造,但子类总体上会保留抽象类的行为方式。

解决的问题:
*当功能内部的一部分实现是确定的,另一部分的实现是不确定的。这时可以把不确定的一部分暴露出去,由子类去实现。
*换句话说,在软件中实现一个算法时,整体步骤很固定、通用,这些步骤在父类中写好。但是某些部分是易变的,易变部分抽象出来,供不同子类实现。这就是一种模板模式。

父类:

abstract class  Template{
    //计算代码运行花费的时间
    public void spendTime(){
        long start = System.currentTimeMillis();

        code();

        long end = System.currentTimeMillis();

        System.out.println("花费的时间为" + (start - end));
    }

    public abstract void code();
}

子类

class Printinfo extends Template{
    @Override
    public void code() {
        for(int i = 0;i < 10000;i++){
            System.out.println("i = " + i);
        }
    }
}

测试类

public class TemplateTest {
    public static void main(String[] args) {
        Template p1 = new Printinfo();
        p1.spendTime();
    }
}

结果: 花费的时间为-92

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值