美文网首页
模板方法模式的使用

模板方法模式的使用

作者: 文景大大 | 来源:发表于2022-06-23 17:49 被阅读0次

一、模式介绍

模板方法模式,顾名思义,就是在父类中提供一个模板方法,将某个业务流程的步骤进行固定,每个步骤的具体实现则可以交给子类自定义去实现。当然,如果所有子类都有的公共步骤可以提取到父类中实现。

@Slf4j
public abstract class AbstractHouse {

    /**
     * 将子类公共的步骤操作提取到父类中实现
     */
    void clean(){
        log.info("清理地基");
    }

    void dig(){
        log.info("深挖地基");
    }

    void fill(){
        log.info("填充水泥");
    }

    /**
     * 需要建造几层楼房交给子类去实现
     */
    abstract void build();

    /**
     * 定义模板方法,final防止被子类修改流程
     */
    final void buildHouse(){
        clean();
        dig();
        fill();
        build();
    }
}
@Slf4j
public class Apartment extends AbstractHouse{
    @Override
    void build() {
        log.info("建造30层的公寓!");
    }
}
@Slf4j
public class CountryHouse extends AbstractHouse{
    @Override
    void build() {
        log.info("建造3层的乡间楼房!");
    }
}
public class Main {
    public static void main(String[] args) {
        AbstractHouse wanke = new Apartment();
        wanke.buildHouse();

        AbstractHouse biguiyuan = new CountryHouse();
        biguiyuan.buildHouse();
    }
}

二、使用案例

  • JDK中的AbstractList,其中的get(int index)就是一个抽象方法,其实现就交给子类来实现;
  • HttpServlet中的service()doGet()doPost()方法都是模板方法的抽象实现;

三、模式总结

3.1 优点

  • 可以将相同处理逻辑的代码放到抽象父类中,提高代码的复用性;
  • 将不同实现的逻辑分离到不同的子类中,通过对子类的扩展来增加新的行为,符合开闭原则;

3.2 缺点

  • 如果父类需要增加新的抽象行为,所有子类都要修改一遍;

相关文章

  • Java学习笔记 - 第012天

    每日要点 杂项 模板方法模式模板方法模式(GoF设计模式)使用了JAVA的继承机制,在抽象类中定义一个模板方法,该...

  • 模板方法模式

    模板方法模式 模板方法模式是开发过程中经常使用的一种设计模式,模板方法模式是对一种通用算法的抽象,在父类中提取公共...

  • 设计模式之工厂方法模式

    在上篇文章设计模式之模板方法模式中谈到如何使用模板方法模式设计审批流程及其优点,本篇文章将谈谈如何使用工厂模式创建...

  • 11.8设计模式-模板模式-详解

    设计模式-模式模式 模板方法模式详解 模板方法模式在android中的实际运用 1.模板方法模式详解 2.模板方法...

  • 第5章 -行为型模式-模板方法模式

    一、模板方法模式的简介 二、模板方法模式的优点 三、模板方法模式的应用场景 四、模板方法模式的实例

  • 设计模式汇总(ongoing)

    单例模式 工厂方法模式 抽象工厂模式 模板方法模式 建造者模式 代理模式Binder 通信retrofit 使用动...

  • 模板方法模式

    模板方法模式 模板方法模式的定义 模板方法模式(Template Method Pattern)是如此简单,以致让...

  • 行为型设计模式详解之模板方法模式!深度解析模板方法模式的使用和实

    模板方法模式 模板方法模式: 使用一个抽象类定义算法模板结构,将某些具体算法步骤的实现延迟到子类中进行,使得子类在...

  • 设计模式系列-模板方法模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 模板方法模式 定义 模板方法模式在一个方法中定义了算法...

  • 模板方法模式

    一、概念 二、模板方法模式UML图 三、模板方法模式的2个角色 四、模板方法与基本方法的概念 模板方法: 基本方法...

网友评论

      本文标题:模板方法模式的使用

      本文链接:https://www.haomeiwen.com/subject/xjdmvrtx.html