设计模式之模板方法

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

定义


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


作用

复用

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


扩展


模板方法和责任链模式都兼具复用和扩展的作用,在框架中使用较多。例如 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. 在模板方法中实现算法的骨架,并调用其他由子类实现的抽象方法。
目录
相关文章
|
6月前
|
设计模式 算法 Java
模板方法--设计模式
模板方法--设计模式
49 0
|
6月前
|
设计模式 算法 Java
模板方法设计模式(TemplateMethod)
模板方法设计模式(TemplateMethod)
|
设计模式 算法 Java
设计模式系列教程(08) - 模板方法
设计模式系列教程(08) - 模板方法
46 0
|
6月前
|
设计模式 算法 Java
Java一分钟之-设计模式:策略模式与模板方法
【5月更文挑战第17天】本文介绍了策略模式和模板方法模式,两种行为设计模式用于处理算法变化和代码复用。策略模式封装不同算法,允许客户独立于具体策略进行选择,但需注意选择复杂度和过度设计。模板方法模式定义算法骨架,延迟部分步骤给子类实现,但过度抽象或滥用继承可能导致问题。代码示例展示了两种模式的应用。根据场景选择合适模式,以保持代码清晰和可维护。
118 1
|
5月前
|
设计模式 算法
模板方法-大话设计模式
模板方法-大话设计模式
|
5月前
|
设计模式 存储 Java
JavaSE——面向对象高级二(2/4)-final关键字、常量、抽象类(认识抽象类、抽象类的好处、应用场景-模板方法设计模式)
JavaSE——面向对象高级二(2/4)-final关键字、常量、抽象类(认识抽象类、抽象类的好处、应用场景-模板方法设计模式)
28 0
|
设计模式 SQL 数据库
淘东电商项目(61) -聚合支付(基于模板方法设计模式管理支付回调)
淘东电商项目(61) -聚合支付(基于模板方法设计模式管理支付回调)
83 0
|
6月前
|
设计模式 算法 Java
【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
|
6月前
|
设计模式 算法
设计模式之模板方法
设计模式之模板方法
|
设计模式 SQL 数据库
淘东电商项目(62) -聚合支付(基于模板方法设计模式管理支付回调-支付宝)
淘东电商项目(62) -聚合支付(基于模板方法设计模式管理支付回调-支付宝)
66 0