1.定义:解决某类事情的时候,有些步骤是固定的,有些是会发生变化的,那么这时候我们可以为这类事情提供一个模板代码,从而提高效率 。
2.模板模式的步骤:
(1) 先写出解决该类事情其中的一件的解决方案。
(2) 分析代码,把会发生变化的代码抽取出来独立成一个方法。把该方法描述成一个抽象的方法。
原因:既然是模板,那么方法里就应该掏空让用户去填写,就好比简历模板,只是有姓名、性别、说明,后面的内容是由写简历的人去填写的所以方法体内就不能写内容,,所以是一个抽象的方法。
(3) 使用final修饰模板方法,防止子类重写父类的模板方法。
3.实例:
(1) 需求:编写一个计算程序运行时间的模板。
(2) 分析:解决这类事情也可以有模板,程序在运行之前记录一个时间,程序运行完毕后又记录一个时间,让这两个时间相减即可,而到底要运行哪段程序是会发生变化的。就像我们跑步一样,不管你是跑500米还是1500米,都是在起跑之前记录一个时间,跑完之后记录一个时间,不管跑多少米记录时间的这个步骤是一样的,而跑多少米是会发生变化的。
(3) 实例:
abstract class MyRuntime{
public final void getTime(){
long startTime = System.currentTimeMillis(); //记录开始的时间
code();
long endTime = System.currentTimeMillis(); //记录结束的时间.
System.out.println("运行时间 :"+ (endTime-startTime));
}
public abstract void code();
}
class Demo1 extends MyRuntime{
public static void main(String[] args) {
Demo1 d = new Demo1();
d.getTime();
}
//code方法内部就写要计算运行时间的代码;
public void code(){
int i = 0;
while(i<5){
System.out.println("i="+i);
i++;
}
}
}
(4) 运行结果:
5886

被折叠的 条评论
为什么被折叠?



