深入浅出模板方法模式

简介: 深入浅出模板方法模式

1 概念

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

2 应用场景

  • 有多个子类共有的方法,且逻辑相同。
  • 重要的、复杂的方法,可以考虑作为模板方法。

3 实际使用案例

3.1 场景分析

一个国际上市公司的老板Tom经常去不同的国家谈合作,邮件中需要进行自我介绍,在不同的国家需要不同的语言,但是介绍的模板都是相同的,主需要更换不同语言的名字就可以实现自我介绍的模板,因此我们设计一个签名的抽闲,几个不同的语言进行具体的实现,实例化时只需要声明代表不同语言的实现类,设置好不同语言的签名就可以简单的进行自我介绍。

3.2 类图

网络异常,图片无法展示
|

3.3 代码实现

Signature抽象类

/**
 * @desc: 签名抽象类
 * @author: YanMingXin
 * @create: 2021/8/28-22:08
 **/
public abstract class Signature {
    public String name;
    /**
     * 打开笔
     */
    public abstract void open();
    /**
     * 关闭笔
     */
    public abstract void close();
    /**
     * 签名的内容
     */
    public abstract void print();
    /**
     * 进行显示
     */
    public void display() {
        open();
        print();
        close();
    }
}
复制代码

ChineseSignature类

/**
 * @desc: 中文签名
 * @author: YanMingXin
 * @create: 2021/8/28-22:08
 **/
public class ChineseSignature extends Signature{
    public ChineseSignature(String name){
        this.name=name;
    }
    @Override
    public void open() {
        System.out.print("我的中文名字是 : ");
    }
    @Override
    public void close() {
        System.out.print("。");
    }
    @Override
    public void print() {
        System.out.print(name);
    }
}
复制代码

EnglishSignature类

/**
 * @desc: 英文签名
 * @author: YanMingXin
 * @create: 2021/8/28-22:08
 **/
public class EnglishSignature extends Signature{
    public EnglishSignature(String name) {
        this.name=name;
    }
    @Override
    public void open() {
        System.out.print("My English is : ");
    }
    @Override
    public void close() {
        System.out.print(".");
    }
    @Override
    public void print() {
        System.out.print(name);
    }
}
复制代码

RussianSignature类

/**
 * @desc: 俄文签名
 * @author: YanMingXin
 * @create: 2021/8/28-22:09
 **/
public class RussianSignature extends Signature{
    public RussianSignature(String name){
        this.name=name;
    }
    @Override
    public void open() {
        System.out.print("Моё русское имя : ");
    }
    @Override
    public void close() {
        System.out.print(".");
    }
    @Override
    public void print() {
        System.out.print(name);
    }
}
复制代码

测试类:

/**
 * @desc: 模板方法模式测试
 * @author: YanMingXin
 * @create: 2021/8/28-22:06
 **/
public class MyTemplate {
    public static void main(String[] args) {
        Signature signature = new ChineseSignature("汤姆");
        signature.display();
        System.out.println();
        signature = new EnglishSignature("Tom");
        signature.display();
        System.out.println();
        signature = new RussianSignature("Том");
        signature.display();
    }
}
复制代码

测试结果:

网络异常,图片无法展示
|


相关文章
|
16天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8246 19
|
15天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
2599 14
|
14天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1880 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
13天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)
|
9天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
|
9天前
|
人工智能 JSON 编解码
【2026最新版】ComfyUI本地部署教程,新手也能看懂!
ComfyUI是本地运行的AI绘画工具,采用节点式工作流设计:通过拖拽连接“加载模型”“提示词编码”“采样”“解码”等模块,实现高度可控的文生图。新手推荐使用秋叶整合包,一键启动、内置模型管理与插件安装器,轻松上手。(239字)
|
23天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
2486 1

热门文章

最新文章