设计模式(六):模板方法模式(行为型模式)

这篇具有很好参考价值的文章主要介绍了设计模式(六):模板方法模式(行为型模式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Template Method,模板方法:定义一个操作中的算法的骨架,而将一
些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即
可以重定义该算法得某些特定步骤。

举例说明

奶茶制作过程,第一步加牛奶,第二步加糖,第三步加其他配料。第三步对于不同口味的奶茶,可以添加各种配料,那么第三步的方法就可以抽象为一个模板方法,让子类来各自实现。这里给代码。

奶茶基类MilkTea.java

package com.figo.study2024.pattern.template;

/**
 * @ClassName:MilkTea
 * @PackageName:com.figo.study2024.pattern.template
 * @Description:奶茶基类
 * @Date:2024/2/20 11:39
 * @Author:figo
 */
public abstract class MilkTea {
    /**
     * 制作奶茶总体流程不变
     */
    public void makeMilk()
    {
        addMilk();
        addSuger();
        addOther();
    }
    public void addMilk()
    {
        System.out.println("第一步添加牛奶");
    }
    public void addSuger()
    {
        System.out.println("第二步添加糖");
    }

    /**
     * 添加配料,作为一个模板方法让子类自行实现
     */
    public abstract void addOther();
}

珍珠奶茶子类PearlMilkTea.java

package com.figo.study2024.pattern.template;

/**
 * @ClassName:PearlMilkTea
 * @PackageName:com.figo.study2024.pattern.template
 * @Description:珍珠奶茶类描述
 * @Date:2024/2/20 12:50
 * @Author:figo
 */
public class PearlMilkTea extends MilkTea{
    @Override
    public void addOther() {
        System.out.println("第三步添珍珠");
    }
}

红豆奶茶子类RedBeanMilkTea.java

package com.figo.study2024.pattern.template;

/**
 * @ClassName:RedBeanMilkTea
 * @PackageName:com.figo.study2024.pattern.template
 * @Description:红豆奶茶类描述
 * @Date:2024/2/20 12:44
 * @Author:figo
 */
public class RedBeanMilkTea extends MilkTea{
    @Override
    public void addOther() {
        System.out.println("第三步添红豆");
    }
}

客户端调用:文章来源地址https://www.toymoban.com/news/detail-832946.html

package com.figo.study2024.pattern.template;

/**
 * @ClassName:PatterTest
 * @PackageName:com.figo.study2024.pattern.template
 * @Description:客户端调用类描述
 * @Date:2024/2/20 12:53
 * @Author:figo
 */
public class PatterTest {
    public static void main(String[] args) {
        //制作红豆奶茶
        MilkTea redBeanMilkTea=new RedBeanMilkTea();
        redBeanMilkTea.makeMilk();
        //制作珍珠奶茶
        MilkTea pearlMilkTea=new PearlMilkTea();
        pearlMilkTea.makeMilk();
    }
}

到了这里,关于设计模式(六):模板方法模式(行为型模式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设计模式行为型——模板模式

    目录 模板模式的定义 模板模式的实现 模板模式角色 模板模式类图 模板模式举例 模板模式代码实现 模板模式的特点 优点 缺点 使用场景 注意事项 实际应用         模板模式(Template Pattern)属于行为型设计模式,又叫模版方法模式(Template Method Pattern),是指定义一个算法

    2024年02月13日
    浏览(27)
  • Java设计模式 (一) 模板方法设计模式

    什么是模板方法设计模式? 模板方法设计模式是一种行为型设计模式,它定义了一个算法的骨架,并将一些步骤的具体实现延迟到子类中。模板方法模式可以帮助确保在算法的不同部分中保持一致性,同时也允许子类根据需要进行具体实现。 模板方法模式的关键特点包括:

    2024年02月12日
    浏览(31)
  • java设计模式学习之【模板方法模式】

    设想你正在准备一顿晚餐,无论你想做意大利面、披萨还是沙拉,制作过程中都有一些共同的步骤:准备原料、加工食物、摆盘。这里,整个烹饪流程就像一个模板,而具体的菜肴则在这个模板的基础上添加了特有的步骤。在软件开发中,我们经常遇到类似的情况,某些过程

    2024年02月03日
    浏览(36)
  • 【设计模式与范式:行为型】58 | 模板模式(上):剖析模板模式在JDK、Servlet、JUnit等中的应用

    上两节课我们学习了第一个行为型设计模式,观察者模式。针对不同的应用场景,我们讲解了不同的实现方式,有同步阻塞、异步非阻塞的实现方式,也有进程内、进程间的实现方式。除此之外,我还带你手把手实现了一个简单的 EventBus 框架。 今天,我们再学习另外一种行

    2024年02月09日
    浏览(73)
  • 深入理解设计模式-行为型之模板(和回调区别联系)

    模板设计模式(Template Design Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将算法的一些步骤延迟到子类中实现。模板设计模式允许 子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板设计模式的核心思想是:将一个算法的 主要结构定义在一个模板

    2024年02月12日
    浏览(31)
  • 行为型设计模式之观察者模式【设计模式系列】

    C++技能系列 Linux通信架构系列 C++高性能优化编程系列 深入理解软件架构设计系列 高级C++并发线程编程 设计模式系列 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reali

    2024年02月15日
    浏览(30)
  • 【模板方法设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

    模板方法模式(Template Method Pattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法

    2024年02月01日
    浏览(64)
  • 【十五】设计模式~~~行为型模式~~~状态模式(Java)

    【学习难度:★★★☆☆,使用频率:★★★☆☆】 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互

    2024年02月07日
    浏览(32)
  • JAVA8-lambda表达式8:在设计模式-模板方法中的应用

    JAVA8-lambda表达式1:什么是lambda表达式 JAVA8-lambda表达式2:常用的集合类api JAVA8-lambda表达式3:并行流,提升效率的利器? JAVA8-lambda表达式4:Optional用法 java8-lambda表达式5:toMap引发的线上故障 JAVA8-lambda表达式6:重构和定制收集器 JAVA8-lambda表达式7:重要的函数接口 最近在公司

    2024年02月14日
    浏览(39)
  • 【Java 设计模式】行为型之状态模式

    状态模式(State Pattern)是一种行为型设计模式,用于通过将对象的行为封装到不同的状态类中,使得对象在不同的状态下具有不同的行为。状态模式允许对象在内部状态发生改变时改变其行为,而无需修改其代码。在本文中,我们将深入研究Java中状态模式的定义、结构、使

    2024年01月24日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包