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");


}
}



posted @ 2012-10-25 21:54  retacn_yue  阅读(139)  评论(0编辑  收藏  举报