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

模板方法模式是一种设计模式,由抽象父类定义算法骨架,子类实现具体步骤。适用于有公共步骤且部分步骤可变的场景。举例说明了银行存取款业务,通过父类定义通用流程,子类实现各自业务,实现业务流程的模板化。
摘要由CSDN通过智能技术生成

模板方法模式学习

一、定义和组成

模板方法模式有两部分组成

  • 抽象父类
  • 具体实现的子类

通常是在父类中定义算法骨架和一些公共的方法,子类继承父类方法的基础上,不修改算法骨架,重新定义父类中算法的某些实现步骤。

二、应用场景

  • 多个子类拥有公共的方法,且逻辑相同,可以提取到父类中实现
  • 父类实现不变的部分,并将可变行为交给子类来实现
  • 需要通过子类来决定父类中某个步骤是否执行,实现子类对父类的反控制

三、例子讲解

我们去银行取钱、存钱、办卡等业务的时候,都需要三大步骤:

  1. 排队取号;
  2. 办理具体的业务;
  3. 服务评价。

然后这个步骤可以抽取到父类中去实现整体的步骤(算法骨架),其中第一步排队取号和第三步服务评价是公共的方法,可以在父类中实现,第二步办理具体业务在不同的子类来实现

3.1 存钱

首先我们来看下银行存钱业务,一般步骤如下:

  1. 排队取号;
  2. 存钱;
  3. 服务评价。

通过以下代码,我们就完成了去银行办理存钱的业务

       var Deposit = function () {};
        
        Deposit.prototype.takeNumber = function() {
            console.log('排队取号');
        };

        Deposit.prototype.depositMoney = function() {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值