二十三种设计模式之:(六)模板方法模式

模板方法模式通过定义一个操作的通用流程,并将具体步骤留给子类实现,使得代码结构更加清晰。例如,在银行业务场景中,取号、排队和评价是固定步骤,而办理具体业务如取款、存款等则由不同子类实现。这种模式允许在不改变整体流程的情况下,方便地扩展或修改特定业务逻辑。
摘要由CSDN通过智能技术生成

TemplateMethod 模板方法模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。
大白话:去银行办理业务,一共有4个流程: 取号,排队,办理具体业务,对工作人员评价。其中取号,排队,评价是固定的,每个人去银行办理业务都要经历这三个步骤。但是办理具体业务是不同的:有的人取款,有的存款,有的咨询等等。
那么就可以定义一个父类(抽象类),把固定的步骤,流程实现了。不能固定的业务逻辑,让子类去实现。

实例:

public class TemplateMethod {

    public static void main(String[] args) {
        childClass c = new childClass();
        c.template();
    }
}
abstract class bank{
    //模板方法
    public void template(){
        quhao();
        paidui();
        dealwith();
        pingjai();
    }

    public void quhao(){
        System.out.println("取号");
    }
    public void paidui(){
        System.out.println("排队");
    }
    public abstract void dealwith();  //办理业务这里是抽象方法,子类实现

    public void pingjai(){
        System.out.println("评价");
    }
}
class childClass extends bank{

    @Override
    public void dealwith() {
        System.out.println("子类办理业务");
    }
    // 实际如果对固定方法有些改动,这里也可以重写父类中固定步骤的方法
    @Override
    public void quhao(){
        System.out.println("子类重写《父类取号》方法");
    }
}

打印结果:

子类重写《父类取号》方法
排队
子类办理业务
评价
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值