`

java 设计模式学习笔记十四 template模版模式

阅读更多

/**
* 模版
*
* @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");


}
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics