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

模板方法模式

描述

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

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

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

基本定义

  • 父类模板方法
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();
    }
}
相关推荐
workflower13 小时前
人形机器人灵巧手产业链
人工智能·设计模式·机器人·云计算·无人机
Java后端的Ai之路14 小时前
03、Python - 抽象工厂模式
开发语言·python·设计模式·抽象工厂模式·通用智慧
AI人工智能+电脑小能手19 小时前
大白话说Java设计模式-45-解释器模式(源码剖析篇)
java·设计模式·解释器模式·源码分析·pattern·spel·javacc
码匠许师傅1 天前
【设计模式精讲】4.单例模式(Singleton)
c++·单例模式·设计模式
雾削木1 天前
2026 编程领域热点知识速览:AI 辅助开发、设计模式实战与嵌入式高效迭代
人工智能·设计模式
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-42-访问者模式(业务实战篇)
java·spring·设计模式·访问者模式·asm·营销规则·数据结构与操作分离
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-43-访问者模式(源码剖析篇)
java·设计模式·访问者模式·源码分析·elementvisitor·asm classvisitor·spring spel
Michael_lcf3 天前
Agent设计模式:思考-行动-观察循环的本质与局限
设计模式·agent设计模式·agent设计模式的本质
丰锋ff3 天前
设计模式学习笔记
笔记·学习·设计模式
米啦啦.3 天前
设计模式/
观察者模式·单例模式·设计模式·工厂模式