java-抽象模板模式
按照顺序源码如下
package com.test;
abstract public class Template {//抽象类—模板设计模式
public abstract void job();//抽象方法
public void calculateTime() {//实现方法 调用job方法
//得到开始的时间
long start = System.currentTimeMillis();
job();//动态的绑定机制
//得到结束的时间
long end = System.currentTimeMillis();
System.out.println("任务执行时间 " + (end - start));
}
}
package com.test;
public class AA extends Template{
//计算任务
//1+...+800000
@Override
public void job() {//实现Template的抽象方法job
long num = 0;
for (long i = 1; i <= 800000; i++) {
num += i;
}
}
}
package com.test;
public class BB extends Template{
public void job() {//这里也去 重写的Template的job方法
long num = 0;
for (long i = 1; i <= 90000; i++) {
num *= i;
}
}
}
package com.test;
public class abstract_ {
public static void main(String[] args) {
//测试
AA aa = new AA();
aa.calculateTime();//这里还是需要有良好的OOP基础 尤其是对多态的理解
BB bb = new BB();
bb.calculateTime();
}
}