模板方法模式
在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而已确定的部分在调用未知的部分,
这时候可以将未知的部分暴露出去,让子类来完成未知部分的代码…提高了代码的拓展性和复用性
代码演示----
/**
* 需求:获取一段程序运行的时间
*/
abstract class GetTime {
//final修饰,该方法不让重写
public final void getTime() {
long start = System.currentTimeMillis(); //获取开始时间
setCode(); //需要运行的程序是不确定的
long end = System.currentTimeMillis(); //获取结束时间
System.out.println("毫秒=" + (end - start));
}
public abstract void setCode(); //把建立代码功能暴露出去让子类完成
}
class CodeRunTime extends GetTime {
public void setCode() { //重写了父类抽象方法,完成了需要运行的程序
for (int i = 0; i < 500; i++) {
System.out.println(i);
}
}
}