模版方法设计模式:在定义功能时功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分
那么这时就将不确定的部分暴露出去,由该类的子类去完成。
如下面求程序运行时间的例子:
父类
1 abstract class GetTime { 2 public final void getTime(){ 3 Long star=System.currentTimeMillis(); 4 codeRun(); 5 Long end=System.currentTimeMillis(); 6 System.out.println(end-star); 7 } 8 abstract void codeRun(); //不确定的代码,暴露出去由子类来完成 9 }
子类
1 public class SubTime extends GetTime{ 2 3 @Override 4 void codeRun() { //覆写父类的抽象方法 5 for (int i = 0; i <1000; i++) { 6 System.out.print(i); 7 8 } 9 System.out.println("------"); 10 } 11 12 }
测试类
1 public class Test13 { 2 public static void main(String[] args) { 3 SubTime sub=new SubTime(); 4 sub.getTime(); 5 } 6 }