模板设计模式

模板模式(Template Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。模板模式使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

核心思想:

  1. 定义一个抽象类,其中包含算法的骨架,将算法中的某些步骤标记为抽象方法,留给子类实现。
  2. 子类继承抽象类,并实现其中的抽象方法,完成算法的具体实现。
  3. 抽象类中的模板方法调用了算法的各个步骤,由子类提供具体的步骤实现。
    示例:
    假设我们要实现一个简单的咖啡制作过程,其中有三个步骤:冲泡咖啡、加入调料、倒入杯中。其中冲泡咖啡和倒入杯中的步骤是固定的,但加入调料的种类可以由子类自由选择。
// 咖啡制作的模板类
abstract class CoffeeMakerTemplate {

    // 模板方法,定义制作咖啡的算法骨架
    public final void makeCoffee() {
        brewCoffee();
        addIngredients();
        pourInCup();
    }

    // 冲泡咖啡,固定步骤
    public void brewCoffee() {
        System.out.println("冲泡咖啡");
    }

    // 加入调料,由子类实现的抽象方法
    public abstract void addIngredients();

    // 倒入杯中,固定步骤
    public void pourInCup() {
        System.out.println("倒入杯中");
    }
}

// 子类1:制作黑咖啡
class BlackCoffeeMaker extends CoffeeMakerTemplate {

    @Override
    public void addIngredients() {
        System.out.println("加入黑咖啡调料");
    }
}

// 子类2:制作拿铁咖啡
class LatteCoffeeMaker extends CoffeeMakerTemplate {

    @Override
    public void addIngredients() {
        System.out.println("加入牛奶和糖调料");
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        CoffeeMakerTemplate blackCoffee = new BlackCoffeeMaker();
        CoffeeMakerTemplate latteCoffee = new LatteCoffeeMaker();

        System.out.println("制作黑咖啡:");
        blackCoffee.makeCoffee();

        System.out.println("制作拿铁咖啡:");
        latteCoffee.makeCoffee();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值