设计模式--行为型--模板模式

主要是用来解决复用和扩张两个问题

 

模板模式,全称模板方法模式,英文名Template Method Design Patterm。模板方法模式在一个方法中定义算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类不改变算法整体结构的情况下,重新定义算法中的某些步骤。

 

这里的"算法",可以理解为业务逻辑,这里的算法骨架就是“模板”,包含算法骨架的方法也称之为模板方法,这也就是模板方法的由来。

 

由上面可以看出。模板模式包含两部分,一部分是提供模板方法和扩展点的父类(AbstractClass),另一部分是实现扩展点的子类(ConcreteClasses)。

 

进一步解读的话,就是把业务逻辑中不变的行为封装到了父类的模板方法中,把可变部分抽象成为扩展点。子类继承父类,重写扩展点。

 

这个设计模式理解起来比较容易,简单的代码实现也比较容易,代码实现如下:

/**
 * 模板类
 */
public abstract class AbstractClass {
    public final void templateMethod() { //模板方法
        //...
        method1();
        // ...
        method2();
        //...
    }

    protected abstract void method1(); //扩展点1

    protected abstract void method2(); //扩展点2
}

/**
 *  具体实现类1
 *
 *  实现扩展点
 */
public class ConcreteClass1 extends AbstractClass{
    @Override
    protected void method1() {
        //……省略实现代码
    }

    @Override
    protected void method2() {
        //……省略实现代码
    }
}


/**
 * 具体实现类2
 *
 * 实现扩展点
 */
public class ConcreteClass2 extends AbstractClass{
    @Override
    protected void method1() {
        //……省略实现代码
    }

    @Override
    protected void method2() {
        //……省略实现代码
    }
}

这只是对模板方法模式的一个简单理解和实现。后续还对对其进行补充

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值