设计模式——17 模板方法模式templateMethod

银行办理业务场景:
不管去银行办理取钱业务,理财业务,还是存款业务,用户都需要排队取号,办具体业务,给银行人员评分三步。
模(mu)板方法设计模(mo)式有两个abstract,一个abstract类为银行模板方法设计模式类,其中有四个方法,分别是取排队具体方法号,抽象方法办理业务方法,具体方法评分反馈方法。然后就是模板方法整套流程怎么做,调用此对象的排队取豪方法,办具体业务方法,父类是抽象的,会去调用子类对象的具体业务方法(钩子,回调,多态),最后调用父类对象的评分方法。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码实现:

package com.bjsxt.templatemethod;

public abstract class BankTemplateMethod {
    public void getNumber(){
        System.out.println("排队取号!");
    }
    public abstract void transact();
    public void evaluate(){
        System.out.println("评分!");
    }
    public void process(){
        this.getNumber();
        this.transact();
        this.evaluate();
    }
}
class DrawMoney extends BankTemplateMethod{
    @Override
    public void transact() {
        System.out.println("我要取钱!");
    }
}
package com.bjsxt.templatemethod;

public class Client {
    public static void main(String[] args) {
        BankTemplateMethod method = new DrawMoney();
        method.process();

        //
        BankTemplateMethod method1 = new BankTemplateMethod() {
            @Override
            public void transact() {
                System.out.println("我要理财!2000万韩币!");
            }
        };
        method1.process();

        BankTemplateMethod method2 = new BankTemplateMethod() {
            @Override
            public void transact() {
                System.out.println("存款!");
            }
        };
        method2.process();
    }
}

uml图:
在这里插入图片描述
运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值