定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
public class Template_Main {
public static void main(String[] args) {
AbstractPlay play = new Swimming();
play.start();
}
}
//模板定义,提供给外部同类型样式,特殊方法特殊实现
abstract class AbstractPlay{
public void start(){
prepare();
play();
end();
}
private void prepare(){
System.out.println("运动之前进行准备工作...");
}
abstract void play();
private void end(){
System.out.println("运动之后好好休息...");
}
}
//游泳运动可以套用模板功能,只需专注不同于模板的东西即可
class Swimming extends AbstractPlay{
@Override
void play() {
System.out.println("游泳运动进行中...");
}
}
class FootBall extends AbstractPlay{
@Override
void play() {
System.out.println("足球运动进行中...");
}
}