定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
概述:
定义一个功能时,功能的一部分是确定的,而另一部分不确定,确定的部分需要用到不确定的部分,把不确定的部分暴露出去,让子类实现。
模板模式与抽象类和抽象方法联系在一起,其大致框架如下:
1 abstract class 类名{ 2 //确定部分 3 public void f(){ 4 ... 5 f1(); 6 } 7 8 //不确定部分 9 public abstract void f1();10 }
示例:
1 package com.pattern; 2 3 //该Demo测试一个一个方法的执行时间 4 public class Test2 { 5 public static void main(String[] args) { 6 T t = new T(); 7 t.getTime(); 8 } 9 }10 11 abstract class Test{12 public void getTime(){13 long start = System.currentTimeMillis();14 f();15 long end = System.currentTimeMillis();16 System.out.println(start);17 System.out.println(end);18 System.out.println("执行该方法花费的时间:"+(end-start)+"ms");19 }20 public abstract void f();21 }22 class T extends Test{23 @Override24 public void f() {25 for(int i =1;i<=100;i++)26 try {27 Thread.sleep(100);28 } catch (InterruptedException e) {29 // TODO Auto-generated catch block30 e.printStackTrace();31 }32 }33 34 }35 36 /*37 abstract class 类名{38 //确定部分39 public void f(){40 ...41 f1();42 }43 44 //不确定部分45 public abstract void f1();46 }47 */
效果:
未完,待续。