Java设计模式—模板模式(Template)

模板模式业务需求编写豆浆制作程序选材-添加配料-浸泡-豆浆机打碎选材、浸泡、打碎这几步对于制作不同豆浆都是一样的比较简单,这里不再使用传统方法,直接上设计模式模板模式基本介绍模板模式,在一个抽象类公开定义了执行他的方法的模板;他的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行简单说,模板模式定义一个操作中的算法骨架,将一些步骤延迟到子类中,使子类可以不改变一个算法结构,就可以重新定义该算法的某些特定步骤模板模式属于行为型模式原理类图原理类图说明Abstrac
摘要由CSDN通过智能技术生成

模板模式

业务需求

  • 编写豆浆制作程序
  • 选材-添加配料-浸泡-豆浆机打碎
  • 选材、浸泡、打碎这几步对于制作不同豆浆都是一样的
  • 比较简单,这里不再使用传统方法,直接上设计模式

模板模式基本介绍

  • 模板模式,在一个抽象类公开定义了执行他的方法的模板;他的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行
  • 简单说,模板模式定义一个操作中的算法骨架,将一些步骤延迟到子类中,使子类可以不改变一个算法结构,就可以重新定义该算法的某些特定步骤
  • 模板模式属于行为型模式

原理类图
在这里插入图片描述
原理类图说明

  • AbstractClass是抽象类,包括模板方法,定义了算法骨架,由子类具体实现里面的抽象方法
  • ConcreteClass 实现了抽象方法,完成算法中的特定子类相关步骤
  • 模板方法可以做成final,防止子类覆盖

代码思路
在这里插入图片描述
模板抽象类

public abstract class SoyaMilk {
   
    // 模板方法
    final void make() {
   
        select();
        addCondiments();
        soak();
        beat();
    }

    // 选材料
    void select() {
   
        System.out.println("第一步,选择新鲜黄豆");
    }
    // 添加不同配料
    abstract void addCondiments();
    // 浸泡
    void soak() {
   
        System.out.println("第三步,浸泡黄豆和配料3小时");
    }
    // 打碎
    void beat() {
   
        System.out.println("第四步,打碎黄豆和配料");
    }
}

子类实现

public class RedBeanSoyaMilk extends SoyaMilk{
   
    @Override
    void addCondiments() {
   
        System.out.println("第二步,加入红豆配料");
    }
}
public class PeanutSoyaMilk extends SoyaMilk{
   
    @Override
    void
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值