publicclassAppTest{publicstaticvoidmain(String[] args){
System.out.println("开始");//1970 - 1 - 1long start = System.currentTimeMillis();
List<Integer> list =newArrayList<Integer>();//List<Integer> list = new LinkedList<Integer>();for(int i =1; i <=1000000; i++){
list.add(0,1);}long end = System.currentTimeMillis();
System.out.println("结束: "+(end - start));}}
此时,每次要测试的代码发生变化时, 都势必修改原有的代码
例如:
我现在测试ArrayList的添加效率
然后又测试一下LinkedList的添加效率
再然后我又要再次测试一下ArrayList的添加效率
那么又要把之前的代码写回来!
使用方法"模板模式",解决这个问题
步骤:
定义一个抽象类
写一个模板方法, 然后模板方法里面写不变的内容
然后定义一个抽象方法
把这个抽象方法,放在这个不变内容中,需要变化的位置
然后具体这个需要变化的如何实现,就定义多一个类去继承这个抽象类就行了
abstractclassTemplate{publicvoidtemplate(){
System.out.println("开始");long start = System.currentTimeMillis();code();long end = System.currentTimeMillis();
System.out.println("结束: "+(end - start));}publicabstractvoidcode();}//=======================时空线=============================//=========上面为服务端(提供服务,作者),下面为客户端(使用服务)=====classAextendsTemplate{@Overridepublicvoidcode(){
List<Integer> list =newLinkedList<Integer>();for(int i =1; i <=1000000; i++){
list.add(0,1);}}}classBextendsTemplate{@Overridepublicvoidcode(){
List<Integer> list =newArrayList<>();for(int i =1; i <=1000000; i++){
list.add(0,1);}}}publicclassAppTest{publicstaticvoidmain(String[] args){
Template t =newA();
t.template();}}