模版方法: 功能(即方法)的一部分是确定的,但是有一部分是不确定的,而确定部分在使用不确定的部分,这个时候可以将不确定的部分暴露出来,由该类的子类去完成。
/**
* 模版方法
* @author Administrator
*
*/
public class MoBanMethodDemo {
public static void main(String[] args){//main方法的参数数组的名字可以自定义
RunDemo run=new RunDemo();
run.getTime();
}
}
//定义一个抽象方法用于求某段代码执行的时间长短
abstract class GetTime{
public final void getTime(){
Long bg =System.currentTimeMillis();//开始时间
//System.out.println(bg);
runDemo();//被求时间长短的代码
Long end=System.currentTimeMillis();//结束时间
System.out.println("运行了:"+(end-bg)+"毫秒");
}
//该方法需要执行的内容不是固定的,因此定义为公共的抽象类,通过子类的重写来指定方法具体需要指定对的代码
public abstract void runDemo();
}
//定义GetTime的子类,并定义runDemo()方法的具体需要执行的方法
class RunDemo extends GetTime{
@Override
public void runDemo() {
for(int i=0;i<100;){
i++;//
}
}
}
上面的代码就完成了一个模版方法的实现,无论是求任何代码的运行时间,只需要继承一下GetTime类,并在其抽象方法中写入需要运行的代码即可,利用这种思想可以做一个简单的工具类,来帮助我们省去一些不必要的麻烦。