java-设计模式之模板模式

本文探讨了Java中的模板模式,介绍了模板模式的核心概念,包括抽象基类和具体子类的角色。抽象基类包含基本方法、抽象方法和可选钩子方法,模板方法将这些方法组织成固定流程。子类则需要实现抽象方法,提供个性化的行为。模板模式遵循子类可以替换可变逻辑但不能改变整体结构的原则,展示了如何通过继承来实现行为的多样化。
摘要由CSDN通过智能技术生成

模板模式

 

抽象基类:

package templateFactory;
/**
 * @program: designPattern
 * @description: 抽象基类,为所有的子类提供一个算法框架
 * @author: Mr.Zhang
 * @create: 2020-08-04 17:06
 * 提神饮料
 **/
public abstract class RefreshBeverage {

    //使用抽象基类定义框架,而禁止所有的子类改变算法框架
    /**
     * 制备饮料的模板方法
     * 封装了所有子类共同遵循的算法框架
     **/
    public final void prepareBeverageTemplate(){
        //1.将水煮沸
        boilWater();
        //2.泡制饮料
        brew();
        //3.将饮料倒入杯中
        pourInCup();

        if(isCustomerWantsCodiments()){
            //4.加入调料
            addCondiments();
        }
    }
    //询问用户是否加入调料
    //Hook,钩子函数,提供一个默认或空的实现
    //具体的子类可以自行决定是否挂钩以及如何挂钩
    protected boolean isCustomerWantsCodiments() {
        return true;
    }
    //对于子类来说是共同的方法
    private void boilWater(){
        System.out.println("将水煮沸");
    }
    //抽象方法,不需要实现
    protected abstract void brew();
    private void pourInCup(){
        System.ou
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值