/**
* 设计模板的简单实现
* @author HailongYao
*/
public abstract class OperateTimeTemplate {
public final long getTotalTime(){ //子类只能调用而不能修改
long begin = System.currentTimeMillis();
doWork();
long end = System.currentTimeMillis();
return end-begin;
}
abstract void doWork();//子类必须要覆盖的抽象方法
}
class StringOperate extends OperateTimeTemplate{
@Override
//该方法只能在子类和父类中使用
protected void doWork() {
String str = "";
for (int i = 0; i < 1_0000; i++) {
str += i;
}
}
}
class IntOperate extends OperateTimeTemplate{
@Override
//该方法只能在子类和父类中使用
protected void doWork() {
int sum = 0;
for (int i = 0; i < 1_0000; i++) {
sum += 1;
}
}
}
class Test{
public static void main(String[] args) {
System.out.println(new StringOperate().getTotalTime()); //返回一个时间差
System.out.println(new IntOperate().getTotalTime()); //返回一个时间差
}
}