abstract class GetTime{//定义计算程序运行时间的骨架
public final long getTime(){//不想子类修改这个模板方法,因此用final
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
return end - start;
}
public abstract void code();//交给子类去实现
}
class Demo extends GetTime{
public void code(){
...//随便写
}
}
public class Test{
public static void main(String[] args){
Demo d = new Demo();
System.out.println(d.getTime());
}
}
模板方法设计模式优点:只定义算法的骨架,将具体的实现延迟到子类,在子类中可以自行设计,灵活满足需求。代码如下。缺点:骨架一般是抽象类,若骨架不合适,就需要修改抽象类。应用:如下图 servlet中最常用的创建方式就是模板方法设计模式。abstract class GetTime{//定义计算程序运行时间的骨架 public final long getTime(){//...