设计模式-模板模式

   模板方法:在一个方法中定义一个算法的骨架,将具体的实现步骤在是现在子类中,模板方法可以使得自雷在不改变算法结构的情况下,实现具体的逻辑。

   比如,用户去银行办理业务有三个步骤,取号、办理业务,回评。对于存款业务就是:取号、存款、回评。对于取款业务就是:取号、取款、回评。所以看的出来业务的实现算法逻辑是相同的。代买实现如下

1.抽取方法创建共同的抽象父类

/**
 * 模板设计的的父类
 * @Author: wangxh
 */
public abstract class AbstractTemplate {

    /*
     * final 修饰不允许该方法被重写
     */
    protected final void doBusiness(){
        getNum();
        doDeal();
        doComment();
    }

    public void getNum(){
        System.out.println("取号");
    }

    public abstract void doDeal();

    public void doComment(){
        System.out.println("服务评价");
    }
}

2.取款业务实现

/**
 * @Author: wangxh
 */
public class TakeCash extends AbstractTemplate{
    @Override
    public void doDeal() {
        System.out.println("取钱");
    }
}

3.存款业务

/**
 * @Author: wangxh
 */
public class SaveCash extends AbstractTemplate{

    @Override
    public void doDeal() {
        System.out.println("存钱");
    }
}


public class TestApp {

    public static void main(String[] args) {
        AbstractTemplate saveCash = new SaveCash();
        saveCash.doBusiness();

        System.out.println("---------");

        TakeCash takeCash = new TakeCash();
        takeCash.doBusiness();
    }
}
取号
存钱
服务评价
---------
取号
取钱
服务评价

因此在模板方法中我们可以把相同步骤的抽取出一个相同的抽象方法,有他的子类去实现具体的实现方法。模板方法具有良好的复用性,以便于子类实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值