java 28

模版设计模式

  模版设计模式概述

  模版方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现

  优点

  使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求

  缺点

  如果算法骨架有修改的话,则需要修改抽象类

例子:

  如果我想知道一个程序运行所花费的时间,那么为了程序更符合面向对象思想设计原则。

就应该把   “运行的程序”、“时间的计算”、“启动这两个类” 分开成3个类来做。

  其中“事件的计算”就是个模版设计,定义一个算法的骨架,将具体的算法延迟到子类中来实现。里面是抽象类和抽象方法

  而“运行的程序”则是继承了“事件的计算”,重写它的抽象方法。

代码:

  “时间的计算”

 1 /*
 2  这是个计算程序运行事件的算法骨架
 3  */
 4 
 5 //有抽象方法,必须抽象类
 6 public abstract class GetTime {
 7 
 8     public long getTime() {
 9 
10         // 获取启动时的时间
11         long starttime = System.currentTimeMillis();
12 
13         // 调用抽象方法
14         code();
15 
16         // 获取结束时间
17         long endtime = System.currentTimeMillis();
18 
19         // 返回运行所花时间
20         return endtime - starttime;
21 
22     }
23 
24     // 抽象方法
25     public abstract void code();
26 
27 }

  

  “运行的程序”

 1 public class ForDemo extends GetTime {
 2 
 3     public void code() {
 4 
 5         for (int x = 0; x < 10000; x++) {
 6             System.out.println(x);
 7         }
 8 
 9     }
10 
11 }

  “启动两个类”

 1 public class GetTimeDemo {
 2 
 3     public static void main(String[] args) {
 4 
 5         // 创建GetTime抽象类的对象,需要这个类的具体实现类
 6         GetTime g = new ForDemo();
 7 
 8         System.out.println("花费时间:" + g.getTime() + "毫秒");
 9 
10     }
11 
12 }
原文地址:https://www.cnblogs.com/LZL-student/p/5970232.html