概述

简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。这种类型的设计模式属于行为型模式。
简单,此处详解略:

coding

//抽象类,表示豆浆
publicabstractclass SoyaMilk {
//模板方法:可以做成final,不让子类去覆盖
finalvoid make() {
select();
if(customerWantCondiment()) {
addCondiment();
}
soak();
beat();
}

//1.选材料
void select() {System.out.println(“第一步:选择新鲜的豆子”);}
//2.添加不同的配料:抽象方法,由子类具体实现
abstractvoid addCondiment();
//3.浸泡
void soak() {System.out.println(“第三步:豆子和配料开始浸泡3H”);}
//4.榨汁
void beat() {System.out.println(“第四步:豆子和配料放入豆浆机榨汁”);}

//钩子方法:决定是否需要添加配料
boolean customerWantCondiment() {
returntrue;//默认情况下是要加配料的
}
}