【玩转23种Java设计模式】行为型模式篇:模板模式

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

软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

汇总目录链接:【玩转23种Java设计模式】学习目录汇总整理

一、简介

  模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern), 它是一种行为设计模式, 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。

  角色:

  • 抽象类(Abstract Class):抽象类定义了算法的框架,其中包含一个或多个抽象方法和模板方法。抽象方法用于延迟到子类实现的具体步骤,而模板方法定义了算法的框架,其中包含一系列的步骤,这些步骤可以是具体方法或抽象方法。
  • 具体类(Concrete Class):具体类是抽象类的子类,它实现了抽象方法,完成算法的具体步骤。

二、实例

文件处理,公共下载和公共读取,特定处理数据。文章来源地址https://www.toymoban.com/news/detail-605288.html

1、模板抽象类(AbstractTemplate)

@Slf4j
public abstract class AbstractTemplate {
    public void execute(String filePath) {

        download(filePath);

        read(filePath);

        deal(filePath);
    }

    public void download(String filePath) {
        log.info("公共下载:{}", filePath);
    }

    public void read(String filePath) {
        log.info("公共读取:{}", filePath);
    }

    public abstract void deal(String filePath);
}

2、文件服务类1(OneFileService )

@Slf4j
public class OneFileService extends AbstractTemplate {
    @Override
    public void deal(String filePath) {
        log.info("OneFileService 处理数据:{}", filePath);
    }
}

3、文件服务类2(TwoFileService )

@Slf4j
public class TwoFileService extends AbstractTemplate {
    @Override
    public void deal(String filePath) {
        log.info("TwoFileService 处理数据:{}", filePath);
    }
}

4、测试类(Main)

public class Main {
    public static void main(String[] args) {
        OneFileService oneFileService = new OneFileService();
        oneFileService.execute("D:\\test.txt");
    }
}

5、后台输出

公共下载:D:\test.txt
公共读取:D:\test.txt
OneFileService 处理数据:D:\test.txt

三、总结

1、优点

  • 固定的算法框架,降低了算法的设计和实现的复杂度。
  • 提供了一种简单的扩展和定制算法的方式,通过子类可以灵活地实现算法中的具体步骤,同时保持了算法的整体结构的稳定性。
  • 通过抽象父类和具体子类的分离,提高了代码的可维护性和可复用性,减少了重复代码的编写。

2、缺点

  • 如果模板方法本身需要的改动较多,可能需要修改抽象父类或者大量的子类,导致系统的扩展性变差。
  • 如果算法的步骤太多或者过于复杂,可能会导致模板方法变得庞大,不易维护。

3、应用场景

  • 算法的结构固定,但是某些具体步骤的实现可能变化。
  • 多个类具有相似的行为。
  • 需要控制算法的执行流程。
  • 提供一个框架或工具的扩展点。

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

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

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

相关文章

  • 【23种设计模式】行为型模式详细介绍(下)

    本文为 【23种设计模式】行为型模式 相关内容介绍,下边将对 访问者模式 , 模板模式 , 策略模式 , 状态模式 , 观察者模式 , 备忘录模式 , 中介者模式 , 迭代器模式 , 解释器模式 , 命令模式 , 责任链模式 ,具体包括它们的特点与实现等进行详尽介绍~ 📌 博主主

    2023年04月22日
    浏览(25)
  • 【Java 设计模式】行为型之责任链模式

    责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,用于将请求发送者和接收者解耦,使得多个对象都有机会处理请求。责任链模式通过创建一个处理请求的链,将请求沿着链传递,直到有一个对象能够处理为止。在本文中,我们将深入研究Java中责任链模式的定

    2024年01月24日
    浏览(31)
  • 设计模式行为型——模板模式

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

    2024年02月13日
    浏览(26)
  • 设计模式【行为型】-- 模板方法模式

          模板方法模式是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤的具体实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 模板方法模式基于一个抽象类或接口定义算法的骨架,该骨架由一个模板

    2024年02月16日
    浏览(30)
  • java 23种设计模式

    1、创建型模式(Creational Patterns) 2、结构型模式(Structural Patterns) 3、行为型模式(Behavioral Patterns) 创建型模式(Creational Patterns):         1、工厂方法模式(Factory Method Pattern)               1.1、简单工厂模式(Simple Factory Pattern)         2、抽象工厂模式(Abstract

    2024年01月22日
    浏览(29)
  • 设计模式(六):模板方法模式(行为型模式)

    Template Method,模板方法:定义一个操作中的算法的骨架,而将一 些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即 可以重定义该算法得某些特定步骤。 举例说明 奶茶制作过程,第一步加牛奶,第二步加糖,第三步加其他配料。第三步对于不同口味的奶

    2024年02月21日
    浏览(33)
  • Java23种设计模式之【单例模式】

    目录 一.单例模式的起源,和应用场景 1.单例模式的前世今生!  2.什么是单例模式? 2.1使用单例模式的注意事项 2.2如何理解单例模式? 2.3单例模式的优势以及不足! 2.4使用场景 二.实现 1.实现思路 1.1创建一个 Singleton 类 (SingleObject.java) 1.2从 singleton 类获取唯一的对象 (Sing

    2024年02月10日
    浏览(30)
  • Java中的23种设计模式

            单例模式是 Java 中最简单的设计模式之一。通过单例模式,可以保证系统中,应用了单例模式的类,只有一个对象实例。包括五种:饿汉式、懒汉式、双重校验、静态内部类、枚举类。 1.1 饿汉式 特点:类加载时就初始化, 避免了线程同步的问题,是线程安全的。

    2024年02月06日
    浏览(38)
  • Java的23种设计模式

    设计模式就是对优良设计的总结,固化下来的写法,是业界公认的优雅设计。 单例模式常见的不同写法有八种之多,真正完美无缺的只有一种枚举单例。其他单例都存在些许问题,但一般不会有人去用枚举来写单例,因为很怪,本来只是要搞个单例结果整了个枚举,我也不是

    2024年03月09日
    浏览(49)
  • JAVA 23种设计模式示例

    目录 一.单例模式 二.工厂方法模式 三.抽象工厂模式 四.建造者模式 五.原型模式 六.享元模式 七.门面模式 八.适配器模式 九.装饰者模式 十.策略模式 十一.模板方法模式 十二.观察者模式 十三.责任链模式 十四.代理模式 十五.桥接模式 十六.组合模式 十七.命令模式 十八.状态

    2024年02月13日
    浏览(26)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包