模板方法
当代码完成后可以解决某一类问题,这种方式叫做模板方法设计模式。
什么是模板方法?
在定义功能是,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,确定部分final由由该子类完成。可以参考现实生活中月饼模板和月饼,月饼模板是确定的,制作月饼的材料是不确定的。
当代码完成后可以解决某一类问题,这种方式叫做模板方法设计模式。
什么是模板方法?
在定义功能是,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,确定部分final由由该子类完成。可以参考现实生活中月饼模板和月饼,月饼模板是确定的,制作月饼的材料是不确定的。
abstract class GetTime
{
//将获取运行时间抽取为模板方法
public final void getTime()
{
long startTime = System.currentTimeMillis();
runCode();
long endTime = System.currentTimeMillis();
System.out.println("运行时间:"+(endTime-startTime)+"毫秒");
}
//运行代码抽取为抽象方法,具体由子类实现
public abstract void runCode();
}
//需要运行的代码SubTime类继承模板方法类
class SubTime extends GetTime
{
public void runCode()
{
for(int i=0;i<1000;i++)
{
System.out.println(i);
}
}
}
//模板方法测试类
public class TemplateMethod
{
public static void main(String[] args)
{
SubTime s = new SubTime();
s.getTime();
}
}