设计模式-模板模式

一、模板模式介绍

模板方法模式通过在抽象类中定义算法的骨架(固定的流程),将某些实现细节延迟到子类去实现。模板方法模式是行为型设计模式的一种。

二、模板方法模式的核心角色

抽象模板类:

模板方法:定义算法的骨架,按照设定步骤调用方法,为了防止子类篡改,这个方法通常由final 修饰。

抽象方法:模板中的可变步骤,抽象模板类只声明,由子类去实现。

具体方法:模板中固定不变的步骤,子类继承使用。

钩子方法:抽象父类中定义,可以被子类重写,以影响模板方法的行为。

具体子类:

继承抽象父类,实现父类中的抽象方法。

三、模板模式小例子

抽象模板类:

java 复制代码
public abstract class Game {
    abstract void initialize();

    abstract void startPlay();

    abstract void endPlay();

    public final void play() {
        // 初始化游戏
        initialize();
        // 开始游戏
        startPlay();
        // 结束游戏
        endPlay();
    }
}

具体子类:

java 复制代码
public class Chess extends Game {
    @Override
    void initialize() {
        System.out.println("象棋游戏初始化");
    }

    @Override
    void startPlay() {
        System.out.println("象棋游戏开始");
    }

    @Override
    void endPlay() {
        System.out.println("象棋游戏结束");
    }
}
java 复制代码
public class Soccer extends Game {
    @Override
    void initialize() {
        System.out.println("足球游戏初始化");
    }

    @Override
    void startPlay() {
        System.out.println("足球游戏开始");
    }

    @Override
    void endPlay() {
        System.out.println("足球游戏结束");
    }
}

测试:

java 复制代码
public class Test {
    public static void main(String[] args) {
        Game game = new Chess();
        game.play();
        System.out.println("=====================");
        Game game1 = new Soccer();
        game1.play();
    }
}

四、模板模式总结:

使用模板模式可以将不变的逻辑提取到父类,减少重复代码的编写 。算法的整体结构由抽象父类控制,能保证核心流程的可控性。该模式也符合开闭原则,新增一个业务变体只需要新增一个子类继承抽象父类即可。

相关推荐
workflower17 小时前
例二:某汽车制造企业深度融合AI智能体,构建园区网络的智能运维体系
人工智能·机器学习·设计模式·机器人·云计算·汽车·制造
ly768918 小时前
Java 设计模式详解:从原则到 23 种经典模式
java·开发语言·设计模式
AI人工智能+电脑小能手21 小时前
大白话说Java设计模式-14-适配器模式(业务实战篇)
java·设计模式·适配器模式·系统兼容·多渠道对接
略略略咯咯1 天前
(总结)设计模式
设计模式
Cosolar2 天前
DeepSeek Harness 理解 Harness 的设计哲学 - 可组合的插件运行时
人工智能·设计模式·架构
Nebula_g2 天前
JavaSE基础语法:特殊类(特殊情景下的设计模式)
java·开发语言·设计模式
George_Ye2 天前
同一本书,一人一份:我如何设计 AI 个性化扫书报告
设计模式
莫得感情 o3 天前
设计模式 22 · 三个冷门模式:中介者、访问者、解释器
java·设计模式
AI人工智能+电脑小能手4 天前
大白话说Java设计模式-08-建造者模式(业务实战篇)
java·设计模式·建造者模式·架构设计·对象构建
AustinXu4 天前
从 Claude Code 到 Claude Tag,Harness Engineering 走到了组织这一层
设计模式·团队管理