设计模式之模板模式
程序员文章站
2022-06-13 13:22:33
...
模板模式
完成一件事,有固定的步骤,但是每个步骤可以有不同的实现,就可以在父类中定义一个方法来调度这些步骤,而这些步骤的具体实现由子类来完成,下图中的add()方法即具体实现。
简而言之就是将子类中的共同方法提取出来,由父类来完成。
public abstract class SoyaMilk {
final void make(){
select();
addCondiments();
soak();
beat();
}
void select(){
System.out.println("第一步:选好新鲜黄豆。。。");
}
abstract void addCondiments();
void soak(){
System.out.println("第三步:黄豆和配料浸泡3小时");
}
void beat(){
System.out.println("第四步:黄豆和配料放到豆浆机搅拌");
}
}
public class BlackBeanSoyaMilk extends SoyaMilk {
@Override
void addCondiments() {
System.out.println("第二步:加入上好的红豆");
}
}
public class PeanutSoyaMilk extends SoyaMilk {
@Override
void addCondiments() {
System.out.println("第二步:加入上好的花生");
}
}
public class Client {
public static void main(String[] args) {
System.out.println("——————————制作红豆豆浆——————————");
SoyaMilk blackBeanSoyaMilk = new BlackBeanSoyaMilk();
blackBeanSoyaMilk.make();
System.out.println("——————————制作花生豆浆——————————");
SoyaMilk peanutSoyaMilk = new PeanutSoyaMilk();
peanutSoyaMilk.make();
}
}
控制台输出
——————————制作红豆豆浆——————————
第一步:选好新鲜黄豆。。。
第二步:加入上好的红豆
第三步:黄豆和配料浸泡3小时
第四步:黄豆和配料放到豆浆机搅拌
——————————制作花生豆浆——————————
第一步:选好新鲜黄豆。。。
第二步:加入上好的花生
第三步:黄豆和配料浸泡3小时
第四步:黄豆和配料放到豆浆机搅拌
钩子方法
在模板模式的父类中,我们可以定义一个方法,它默认不做任何事情,子类可以视情况要不要覆盖它,该方法称为“钩子”。
上一篇: Java web 登陆注册页面详细步骤
下一篇: day 7