设计模式简述(四)模板方法模式

模板方法模式

描述

一系列 业务的基本流程是相同 的,对于不同的业务可以在各自子类实现

所谓模板方法指的就是父类中固定的那部分代码

其实这里的思想和前面设计原则中开闭原则的描述是一致的,父类中的模板代码就是稳定的部分,而由具体子类实现的部分就是不稳定的部分。

基本定义

  • 父类模板方法
java 复制代码
public abstract class AbstractBiz {
    public final void tempMethod() {
        this.step1();
        this.step2();
        if (this.needStep3()) {
            this.step3();
        }
    }

    private void step1() {
        System.out.println("step1...");
    }
    private void step3() {
        System.out.println("step3...");
    }

    protected abstract boolean needStep3();

    protected abstract void step2();
}
  • 具体子类
java 复制代码
public class Biz1 extends AbstractBiz{
    @Override
    protected boolean needStep3() {
        return false;
    }

    @Override
    protected void step2() {
        System.out.println("Biz1 step2....");
    }
}



public class Biz2 extends AbstractBiz{
    @Override
    protected boolean needStep3() {
        return true;
    }

    @Override
    protected void step2() {
        System.out.println("Biz1 step2....");
    }
}

使用

java 复制代码
public class Sample {
    public static void main(String[] args) {
        AbstractBiz biz1 = new Biz1();
        biz1.tempMethod();
        AbstractBiz biz2 = new Biz2();
        biz2.tempMethod();
    }
}
相关推荐
J_liaty5 小时前
23种设计模式一代理模式
设计模式·代理模式
苏渡苇11 小时前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
短剑重铸之日12 小时前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
feasibility.13 小时前
AI 编程助手进阶指南:从 Claude Code 到 OpenCode 的工程化经验总结
人工智能·经验分享·设计模式·自动化·agi·skills·opencode
BD_Marathon13 小时前
七大设计原则介绍
设计模式
YigAin15 小时前
Unity23种设计模式之 享元模式
设计模式·享元模式
范纹杉想快点毕业1 天前
实战级ZYNQ中断状态机FIFO设计
java·开发语言·驱动开发·设计模式·架构·mfc
茂桑1 天前
DDD领域驱动设计-基础设施层
设计模式·架构
小温冲冲2 天前
通俗且全面精讲工厂设计模式
设计模式
进击的小头2 天前
设计模式与C语言高级特性的结合
c语言·设计模式