设计模式之模板方法

定义

模板方法是结构型设计模式的一种,它定义了算法的骨架,并将算法中的某些步骤推迟到子类实现。模板方法可以让子类重新定义算法中的某些步骤,而不需要修改算法的整体结构。

作用

复用

如果没有模板方法,那么对于相似的业务逻辑将不得不定义多个类,这样就会存在重复的代码。为了复用,可以将重复使用的方法提取到父类中,在父类中定义一个模板方法实现这些相似的业务逻辑,对于不同的部分则抽象出方法由不同的子类实现。

扩展

模板方法和责任链模式都兼具复用和扩展的作用,在框架中使用较多。例如 Servlet 规范中,我们只需要实现 get/post 等对应处理方法即可,而这些方法则由模板方法调用。

实现

模板方法的实现较为简单,使用 Java 代码实现如下。

public abstract class AbstractClass {

    public abstract void subMethod1();
    
    public abstract void subMethod2();
    
    public final void templateMethod(){
        //省略通用的业务逻辑...
        this.subMethod1();
        this.subMethod2();
        //省略通用的业务逻辑...
        
    }
    
}
  1. 定义一个抽象类。
  2. 定义一个模板方法,方法的修饰符为 final,保证算法不会被子类修改。
  3. 在模板方法中实现算法的骨架,并调用其他由子类实现的抽象方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹏cool

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值