/**
* 模版
*
* @time 下午09:58:00
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public abstract class Benchmark {
/**
* 具体操作由子类来实现
*/
public abstract void benchmark();
/**
* 执行benchmark 的次数
*/
public final long repeat(int count) {
if (count <= 0) {
return 0;
} else {
long starTime = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
benchmark();
}
long stopTime = System.currentTimeMillis();
return stopTime - starTime;
}
}
}
/**
* 模版实现类
*
* @time 下午09:58:49
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class MethodBenchmark extends Benchmark {
/**
* 实现父类主法
*/
@Override
public void benchmark() {
for (int i = 0; i < Integer.MAX_VALUE; i++) {
System.out.println("i=" + i + "max===" + Integer.MAX_VALUE);
}
}
}
/**
* 测试模版模式
*
* @time 下午09:50:21
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class TestTemplate {
public static void main(String[] args) {
Benchmark benchmark = new MethodBenchmark();
long duration = benchmark.repeat(2);
System.out.println("the operation took " + duration + "milliseconds");
}
}