public abstract class Benchmark { /** * 下面操作是我們希望在子類中完成 */ public abstract void benchmark();
/** * 重復執行benchmark次數 */ public final long repeat (int count) { if (count <= 0) return 0; else { long startTime = System.currentTimeMillis();
for (int i = 0; i < count; i++) benchmark();
long stopTime = System.currentTimeMillis(); return stopTime - startTime; } } }
|
public class MethodBenchmark extends Benchmark
{
/**
* 真正定義benchmark內容
*/
public void benchmark() {
for (int i = 0; i < Integer.MAX_VALUE; i++){
System.out.printtln("i="+i);
}
}
}
也許你以前還疑惑抽象類有什么用,現在你應該徹底明白了吧? 至于這樣做的好處,很顯然啊,擴展性強,以后Benchmark內容變化,我只要再做一個繼承子類就可以,不必修改其他應用代碼.