一、前言:
模版方法模式的注意事项和细节:
- 基本思想就是:算法只存在于一个地方,也就是在父类中,容易修改。
- 实现了最大化代码复用,父类模版方法被子类继承直接使用。
- 统一了算法,提供了很大的灵活性,父类的模版方法确保了算法的结构保持不变,同时由子类提供部分步骤实现。
二、模版方法模式:
2.1、UML 图:
2.2、代码实例:
Step 1) 创建 SoyaMilk 抽象类:
public abstract class SoyaMilk {
final void make(){
select();
addCoundiments();
soak();
beat();
}
void select(){
System.out.println("第一步:选择好的新鲜黄豆!");
}
abstract void addCoundiments();
void soak(){
System.out.println("第三步:黄豆和配料开始浸泡,需要3小时!");
}
void beat(){
System.out.println("第四步:黄豆和配料放到豆浆机里去打碎!");
}
}
Step 2) 创建 PeautSoyaMilk 实现类:
public class PeautSoyaMilk extends SoyaMilk{
@Override
void addCoundiments() {
System.out.println("第二步:加入上好的花生!");
}
}
Step 3) 创建 RedBeanSoyaMilk 实现类:
public class RedBeanSoyaMilk extends SoyaMilk{
@Override
void addCoundiments() {
System.out.println("第二步:加入上好的红豆!");
}
}
Step 4) 创建 main 方法:
public class Client {
public static void main(String[] args) {
System.out.println("------制作红豆豆浆----------");
SoyaMilk redBeanSoyaMilk = new RedBeanSoyaMilk();
redBeanSoyaMilk.make();
System.out.println("------制作花生豆浆----------");
SoyaMilk peautSoyaMilk = new PeautSoyaMilk();
peautSoyaMilk.make();
}
}
• 由 ChiKong_Tam 写于 2020 年 10 月 20 日