Java学习之:模板设计模式

1.实现理念

主要采用抽象类实现,遵循开闭原则,对修改关闭,对扩展开放。

2.举例

比如饮品制作,都必须要遵循一套大致相同的流程:
1.烧水
2.冲泡主料
3.加配料
4.倒入杯子
虽然大致流程相同,但是主料的选择、配料的选择都有所不同。
所以将这套流程采用抽象类中的抽象方法写出来。
然后在具体制作时,根据流程指南完成具体制作。

3.实现代码

  • 模板类
public abstract class DrinkProduction {
//子类对象最后制作,只需调用次流程
    void production() {
        boilWater();
        brew();
        addCondiments();
        pourIntoGlass();
    }
    //定义流程
    void boilWater() {
        System.out.println("1.烧水");
    }
    abstract void brew();
    abstract void addCondiments();
    void pourIntoGlass() {
        System.out.println("4.倒入杯子");
    }
}

  • 实现类
//制作茶水
class ProductTea extends DrinkProduction{

    @Override
    void brew() {
        System.out.println("2.用水冲泡茶");
    }

    @Override
    void addCondiments() {
        System.out.println("3.加冰块");
    }
}

//制作咖啡
class ProductCoffee extends DrinkProduction{

    @Override
    void brew() {
        System.out.println("2.冲泡咖啡");
    }

    @Override
    void addCondiments() {
        System.out.println("4.加糖和牛奶");
    }
}

*测试类

public class TemplateDesignPattern {
    public static void main(String[] args) {
    	//1.有茶和咖啡对象
        ProductTea tea = new ProductTea();
        ProductCoffee coffee = new ProductCoffee();
        //2.调用制作流程制作
        tea.production();
        System.out.println("-------------");
        coffee.production();
    }
}
  • 此时类图
    在这里插入图片描述

4.模板设计模式的优点

1.有父类模板类的存在,可以控制流程让子类严格执行
2.最大程度的实现代码复用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值