模板设计模式 练习多态-动态绑定机制
- 案例
计算程序运行时间
抽象类的经典使用:模板设计模式,基本思路将通用的方法同一在抽象类中,增加代码复用性
- 该题目中的动态绑定机制:
-
BB类中的动态绑定机制同理
-
代码
// AA 类
package com.test;
public class AA extends Template{
@Override
public void job() {
long num = 0;
for (int i = 0; i < 80000; i++) {
num+=i;
}
}
}
// BB 类
package com.test;
public class BB extends Template{
@Override
public void job() {
long num =0;
for (int i = 0; i < 10000; i++) {
num+=i*2;
}
}
}
// 抽象统计时间类
package com.test;
public abstract class Template {
public abstract void job(); //抽象类没有方法体
public void calculateTime() { //抽象方法中可以有公开方法
long start = System.currentTimeMillis();// 记录开始时间
job(); //动态绑定机制
long end = System.currentTimeMillis();
System.out.println("执行时间:"+(end - start));
}
}
//测试类
package com.test;
public class Test {
public static void main(String[] args) {
// 深入了解动态绑定机制(debug测试) 抽象模板模式
AA aa = new AA();
aa.calculateTime();
BB bb = new BB();
bb.calculateTime();
}
}
- 运行结果
总结:
回顾动态绑定机制,通过断电进行调试,使思路更加清晰!