? 在模板模式(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();
}
}
原文:https://www.cnblogs.com/nuoxin/p/14534099.html