package com.qf.test; /* * 模板设计模式:我们在实现一个功能的时候,功能分成两部分,一部分是确定的,一部分是不确定的.将确定的部分交给当前类实现 * 将不确定的部分交给子类实现.子类实现的结果又会反过来影响确定部分的功能. * * 实例:计算一个功能的耗时 * 分析:固定的功能:开始时间,结束时间 * 不固定的功能:程序运行的时间 */ public class Demo { public static void main(String[] args) { //测试 Zi zi = new Zi(); long value = zi.getTime(); System.out.println(value); } } abstract class Fu{
//抽象的不确定的方法 abstract public void function(); public long getTime() { //开始时间 long startTime = System.nanoTime();//获取的系统时间,单位纳秒 //程序运行的时间,不确定的做成一个抽象的方法,只有声明没有实现,让子类实现 function(); //结束时间 long endTime = System.nanoTime(); return endTime-startTime; } } class Zi extends Fu{ public void function() { for (int i = 0; i < 10; i++) { System.out.println("i:"+i); } } }