Java的抽象类实践-模板设计模式
需求:
1)有多个类,完成不同的任务job
2)要求能够统计得到各自完成任务的时间
最佳实践:
设计一个抽象类(Template),能完成如下功能:
1)编写方法calculateTime(),可以计算某段代码的耗时时间
2)编写抽象方法job()
3)编写一个子类Sub,继承抽象类Template,并实现job方法
4)测试类TestTemplate
package com.abstract_;abstract public class Template {//抽象父类public void calcuteTime(){long start = System.currentTimeMillis();//得到开始的时间job();long end = System.currentTimeMillis();//得到结束时间System.out.println("执行时间为" + (end - start));}abstract public void job();//抽象方法
}AA和BB类分别完成两个不同的任务
package com.abstract_;public class AA extends Template{//计算任务//1+...+10000public void job(){//实现父类的抽象方法int num = 0;for (int i = 0; i <= 1000000; i++) {num += i;}}}
package com.abstract_;public class BB extends Template{//计算任务//1+...+10000public void job(){int num = 0;for (int i = 0; i <= 8000000; i++) {num *= i;}}
}测试:
package com.abstract_;public class TestTemplate {public static void main(String[] args) {AA aa = new AA();aa.calcuteTime();BB bb = new BB();bb.calcuteTime();}
}