【设计模式-模板模式】

article/2025/10/25 18:43:45

设计模式-模板模式

  • 模板模式
    • 模板模式的优缺点
    • 实现
    • 模板代码

模板模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
白话:在一个抽象类中定义几个抽象方法,在定义一个主方法,主方法中调用抽象方法,外部继承该类,子类按需重写抽象方法,并调用主方法执行,即为模板模式

模板模式的优缺点

  • 优点:
    a. 封装不变部分,扩展可变部分。
    b. 提取公共代码,便于维护。
    c. 行为由父类控制,子类实现。
  • 缺点:
    a. 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。

实现

我们将创建一个定义操作的 Game 抽象类,其中,模板方法设置为 final,这样它就不会被重写。Cricket 和 Football 是扩展了 Game 的实体类,它们重写了抽象类的方法。

TemplatePatternDemo,我们的演示类使用 Game 来演示模板模式的用法。
在这里插入图片描述

模板代码

1. 创建模板抽象类,并将模板方法设置为final,以防子类重写

/*** 抽象模板类*/
public abstract class Game {abstract void initialize();abstract void startPlay();abstract void playEnd();// 模板方法,设定为final,不可被重写public final void play() {// 初始化游戏initialize();// 开始玩游戏startPlay();// 玩游戏结束playEnd();}
}

2. 创建具体实现类,即扩展类

public class BasketballGame extends Game{@Overridevoid initialize() {System.out.println("basketball game initialize success!");}@Overridevoid startPlay() {System.out.println("start play basketball game");}@Overridevoid playEnd() {System.out.println("basketball game end");}
}public class FootballGame extends Game{@Overridevoid initialize() {System.out.println("football game initialize success!");}@Overridevoid startPlay() {System.out.println("start play football game");}@Overridevoid playEnd() {System.out.println("football game end");}
}

3. 使用Game方法测试

public class TemplatePatternTest {public static void main(String[] args) {Game basketballGame = new BasketballGame();basketballGame.play();Game footballGame = new FootballGame();footballGame.play();}
}// 输出
// basketball game initialize success!
// start play basketball game
// basketball game end
// football game initialize success!
// start play football game
// football game end

http://chatgpt.dhexx.cn/article/a9cA9qns.shtml

相关文章

设计模式学习(一)—— 模板方法设计模式

设计模式在开发当中有时候挺重要的,可以让你的代码设计变得更加合理巧妙。方便开发。这篇作为我学习设计模式的开篇啦。平时其实也看了不少,就是没用到就没那么深刻,有时候也很懒去记录这些东西。所以现在写出来,也好自己学习整理…

设计模式-模板模式及应用

一般生活中我们办理一件事需要一套指定的流水线。例如银行办事,需要先去营业厅取号、排队、办理业务、综合评分。这一套固有的流程,取号、排队、综合评分等都是固定的,不同的客户会办理不同的业务,只有这块是没个客户不同的。类似…

Java设计模式——模板设计模式

模板设计模式 1.模板模式简介 模板模式(Template ):模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以…

【设计模式】--模板模式

豆浆制作 编写制作豆浆的程序,说明如下: 制作豆浆的流程 选材—>添加配料—>浸泡—>放到豆浆机打碎通过添加不同的配料,可以制作出不同口味的豆浆选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的请使用 模板方法模式 …

Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式

Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式 一、概述 模板设计模式: 父类定义通用抽象的功能方法,子类负责具体的实现。 本文将以一个通用的定时任务,处理模式,来讲解java 模板设计模式。 假设定时任…

设计模式——模板设计模式

一 前言 在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现是未知的,或者说某些步骤的实现是会随着环境的变化而改变&…

java设计模式之模板方法设计模式

什么是模板方法设计模式 模板方法是基于继承实现的,在抽象父类中声明一个模板方法,并在模板方法中定义算法的执行步骤(即算法骨架)。在模板方法模式中,可以将子类共性的部分放在父类里实现,而特性部分在子类中实现,只需…

一文搞懂设计模式--模板模式

Hi,大家好。今年的天气实在是太热了,七月份的厦门晒得我觉得身上冒出了烤肉香,不知道各位是否安好,但是在再热的天气也不能阻止我们学习的热情(doge)。今天的主题是模板(Template Method&#x…

设计模式 – 模板设计模式

模板设计模式 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 该模式的主…

【设计模式】模板模式

博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载。本文由博主 威威喵 原创,请多支持与指教。 本文首发于此 博主:威威喵 | 博客主页:https://blog.csdn.net/smile_running 这是23种设计模式中的模板模…

设计模式之模板模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、模板模式是什么? 模板模式是一种行为型的软件设计模式,在父类中定义了一个模板算法,只实现…

设计模式——模板模式

更多内容,前往 IT-BLOG 在面向对象程序设计过程中,程序员常常会遇到如下情况:设计一个系统时知道算法所需的关键步骤,且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体…

深入理解设计模式之模板模式

我们平时办理入职的流程是:填写入职登记表->打印简历->复印学历->复印身份证->签订劳动合同->建立花名册->办理工牌->安排工位。我平时在家里炒菜的流程是:洗锅->点火->热锅->上油->下原料->翻炒->放调料->出…

数据化风控与催收人员策略管理

在印象中催收也许是个玄学,一个做得好的催收员除了催收技巧外、你需要了解心理学、懂声音学、懂人性、懂风水易经,比如就有个认识的人对什么岁数的人在哪个时辰拨打电话才比较好,都有讲究…总之一切尽在不言中… 但催收的管理却与之相反&…

信贷产品年终总结之风控评分模型

叮咚,信贷年终总结的又一个专题来了,作为报告总结类的系列型文章,近期我们番茄知识星球平台陆续发布了相关年终总结专题,依次为客群特征画像、贷中行为分析、贷后逾期表现等,以上文章可详见之前陆续发布的内容。该业务…

实操信贷场景中的反欺诈模型

今天的文章,关于反欺诈模型的实操,之前有跟大家分享过相关内容,部分反欺诈的领域的童鞋感觉内容比较有帮助,今天就该内容进行讲解。本文介绍的产品适合在消费零售信贷及现金场景贷中的中短期产品,其中涉及的变量参考有…

信贷全生命周期监控报表开发

对于任何一家从事信贷业务的机构而言,监控报表的设计及搭建尤为重要。因为监控报表不仅涉及信贷风控的资产监控,更能反馈客群质量的变化、内部管理手段的调整、策略规则对客群质量的影响等方面。为此,番茄风控输出此系列文章,我们…

信贷全流程监控报表有哪些?

风险策略分析工作是风险管理的重要工作内容,其工作内容需要涉及风控领域中多个环节及细节内容,包含贷前策略调整、策略分析调优、贷中业务监控、贷后策略调整等模块内容,涉及相关模块工作细节及工作内容,我们将一一为大家梳理及分…

详解小微机构贷前准入规则

关注 “番茄风控大数据”,获取更多数据分析与风控大数据的实用干货 嗨同学们好,现在疫情的情况已经出现大反转,我们国内的疫情已经控制住,多个城市都出现了连续多年0增长,一二线城市的部分公共场合也陆续对外开放&…

催收评分卡是如何搭建的?

1、背景 在整个风控体系中,一般分为贷前、贷中和贷后,贷前一般包括反欺诈和A卡,贷中一般使用B卡,贷后一般使用C卡,随着现在监管的越来越严格,催收的合规性越来越重要,所以各持牌金融机构越来越…