定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
概述:
定义一个功能时,功能的一部分是确定的,而另一部分不确定,确定的部分需要用到不确定的部分,把不确定的部分暴露出去,让子类实现。
模板模式与抽象类和抽象方法联系在一起,其大致框架如下:
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 @Override 24 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 block 30 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 */
效果:
未完,待续。
时间: 2024-11-03 20:50:52