模板方式设计模式
/**
* 统计不同操作的耗时,String拼接一万次的时间,int加和一万次的时间
* System.currentTimeMillis();获取当前时间
*/
public class IntDemo extends TimeTemplate {
@Override
public void doWork(){
int num = 1;
for (int i = 0; i < 1000000 ; i++) {
num += 1;
}
}
}
public class StringDemo extends TimeTemplate {
@Override
public void doWork(){
String str = "";
for (int i = 0; i < 10000 ; i++) {
str += 1;
}
}
}
//模板类
public abstract class TimeTemplate implements Time {
final public long getTotalTime(){
long begin = System.currentTimeMillis();
this.doWork();
long end = System.currentTimeMillis();
return end - begin;
}
public interface Time {
/**
* 统计时间的接口
*/
void doWork();
}
public class Test {
public static void main(String[] args) {
StringDemo stringDemo = new StringDemo();
long strTime = stringDemo.getTotalTime();
System.out.println("str耗时:" + strTime);
IntDemo intDemo = new IntDemo();
long intTime = stringDemo.getTotalTime();
System.out.println("int耗时:" + intTime);
}
}