模板模式,在一个抽象类定义了执行它方法的模板,它的子类可以按需重写方法的实现,但是调用需按抽象类中定义的方式执行,模板模式属于行为型的设计模式。
案例
打豆浆操作,可以先定义打豆浆的模板,有共有的方法和抽象方法,子类只需要实现抽象方法即可,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。
public abstract class Soyamilk {
void select(){
System.out.println("第一步,选择好的新鲜黄豆");
}
abstract void addCondiment();
void soak(){
System.out.println("浸泡新鲜黄豆");
}
void beat(){
System.out.println("打碎黄豆");
}
final void make(){
select();
addCondiment();
soak();
beat();
}
}
public class BlackSoyaMilk extends Soyamilk {
@Override
void addCondiment() {
System.out.println("加入黑豆配料");
}
}
客户端调用
public class Client {
public static void main(String[] args) {
Soyamilk soyamilk=new BlackSoyaMilk();
soyamilk.make();
}
}