文章目录
- 1. 在java中什么是模板
- 2. 模板方法设计解决了什么问题?
- 3. 代码化理解
1. 在java中什么是模板
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。
抽象类就像一个大纲,里面的抽象方法就是每个章节的标题;子类去根据这些标题把每个章节的内容写出来
2. 模板方法设计解决了什么问题?
当功能内部一部分实现是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。
编写一个抽象父类,父类提供了多个子类的通用方法,并把一个或多个方法留给其子类实现(就是一种模板模式)。
3. 代码化理解
package day09;
/**
* 模板设计模式
* @author 14532
*
*/
public abstract class Template {
public abstract void code();//code()的实现是不确定的
public final void getTime() {
long start = System.currentTimeMillis();
code();//把code()方法留给其子类实现
long end = System.currentTimeMillis();
System.out.println("code方法执行的时间:" + (end - start));
}
}
class TestTmp extends Template{
@Override
public void code() {//把不确定code()的部分暴露出去,让子类TestTmp去实现。
int k =0;
for(int i = 0; i < 5000; i++) {
k += 1;
}
System.out.println(k);
}
}
Test.java:
package day09;
public class Test {
public static void main(String[] args) {
TestTmp t = new TestTmp();
t.getTime();
}
}
运行结果: