设计模式——模板模式
一、模板模式介绍
模板模式(Template Pattern),又叫称模板方法模式(Template Method Pattern),是指定义一个操作中的算法骨架,将一些步骤延迟至实现该骨架的子类,使得该子类在不改变算法结构的情况下重新定义算法的某些步骤。
二、模板模式代码实例
场景实例
编写制造豆浆的程序,要求如下
(1)制作流程:选材→添加配料→浸泡→打碎
(2)添加不同配料可以制作不同口味的豆浆
(3)选材、浸泡、打碎等步骤对任一口味的豆浆均一样
1)模板方法解决豆浆制作
【注】钩子方法
在模板模式的父类中,定义一个默认不做任何操作的方法,子类可根据实际情况选择是否覆盖该方法,则称该方法为钩子方法。
//抽象类,定义算法骨架
public abstract class SoyaMilk {
//模板方法,make,模板方法可以做成final,不让自类覆盖
final void make(){
select();
//根据钩子进行相应操作
if(customerWantCondiments()){
addCondiments();
}
soak();
beat();
}
void select(){
System.out.println("选择好的新鲜黄豆");
}
//添加不同配料,抽象方法
abstract void addCondiments();
void soak(){
System.out.