定义一个操作中的算法的步骤框架,而将一些具体实现放到子类中。模板方法使得子类可以在不改变一个算法的结构步骤的情况下就可重定义该算法的某些特定步骤的实现。
public abstract class Dinner {
void wash() {
System.out.println("wash");
}
abstract void cut();
abstract void cook();
void sabot() {
System.out.println("sabot");
}
public final void mark() {
wash();
cut();
cook();
sabot();
}
}
public class Potato extends Dinner {
@Override
void cut() {
System.out.println("cut block");
}
@Override
void cook() {
System.out.println("stew");
}
}
public class Kelp extends Dinner {
@Override
void cut() {
System.out.println("cut silk");
}
@Override
void cook() {
System.out.println("fry");
}
}
@Test
public void TemplateTest() {
Dinner potato = new Potato();
potato.mark();
Dinner kelp = new Kelp();
kelp.mark();
}