设计模式3:模板模式(1)

  定义:

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。

  概述:

    定义一个功能时,功能的一部分是确定的,而另一部分不确定,确定的部分需要用到不确定的部分,把不确定的部分暴露出去,让子类实现。

  模板模式与抽象类和抽象方法联系在一起,其大致框架如下:

 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 */

  效果:

  未完,待续。

原文地址:https://www.cnblogs.com/enjoy-coding/p/4803576.html