1.抽象模板模式
基本介绍
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式
模板设计模式能解决的问题
- 当功能内部一部分实现是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现
- 编写一个抽象父类,父类提供了多个子类的通用方法,并把一个或多个方法留给其子类实现,就是一种模板模式
package com.logic.abstract_;
abstract public class Template {
public abstract void job();
public void calculateTime() {
long start = System.currentTimeMillis();//开始时间
job();//动态机制绑定
long end = System.currentTimeMillis();//结束时间
long time = end - start;//运行时间
System.out.println("任务运行时间为" + time);
}
}
package com.logic.abstract_;
public class AA extends Template {
long num = 0;
//计算任务1+..+10000
public void job() {
for (long i = 1; i < 1000000; i++) {
num += i;
}
}
}
package com.logic.abstract_;
public class BB extends Template {
long num = 0;
//计算任务1+..+10000
public void job() {
for (long i = 1; i < 100000; i++) {
num *= i;
}
}
}
package com.logic.abstract_;
public class TestTemplate {
public static void main(String[] args) {
AA aa = new AA();
aa.calculateTime();
BB bb = new BB();
bb.calculateTime();
}
}
1722

被折叠的 条评论
为什么被折叠?



