Loading

模板方法模式

模板模式

​ 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

应用场景

​ 使用程序计算一段代码的运行时间,一般步骤为:记录程序的开始时间,运行指定代码,记录程序的结束时间,结束时间-开始时间得到运行时间。无论是什么代码,要获得运行时间都需要这么做,此时就可以使用模板方法模式来减少代码量。

abstract class GetTime {
    public void template() {
        System.out.println("开始");
        long start = System.currentTimeMillis();
        code();
        long end = System.currentTimeMillis();
        System.out.println("结束: " + (end - start));
    }

    public abstract void code();
}

class A extends GetTime {

    @Override
    public void code() {
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            list.add(i);
        }
    }
}

class B extends GetTime {

    @Override
    public void code() {
        LinkedList<Integer> list = new LinkedList<>();
        for (int i = 0; i < 100; i++) {
            list.add(i);
        }
    }
}

public class ModelPattern {
    public static void main(String[] args) {
        GetTime a = new A();
        GetTime b = new B();
        a.template();
        b.template();
    }
}
posted @ 2021-03-14 20:54  nuoxin  阅读(43)  评论(0)    收藏  举报