模板方法模式

本文介绍了模板方法模式的基本概念,阐述其如何通过抽象类封装不变算法并允许子类定制可变步骤。通过实例展示如何在Spring MVC的`AbstractController`中应用这一模式。关键词包括:抽象类、子类扩展、算法框架、可变步骤和开闭原则。
摘要由CSDN通过智能技术生成

模板方法模式(Template Pattern)

介绍

定义一个操作的算法框架,将一些步骤实现延迟到子类中。模板方法可以让子类在不更改算法结构的情况下修改特定步骤。
如果很多类都实现通用的方法,那可以用模板方法将这些通用方法提取到抽象类中,让子类实现特定步骤。

优点

  1. 封装不变算法部分,扩展可变具体实现。
  2. 提取公共代码,便于维护。
  3. 复合开闭原则。

实现

public class TemplateMethodTest {
    public static void main(String[] args) {
        AbstractClass abstractClass=new SubClass1();
        abstractClass.operation();
    }
}

abstract class AbstractClass{
    //算法实现
    public void operation(){
        System.out.println(" 步骤1 ");
        System.out.println(" 步骤2 ");
        System.out.println(" 步骤3 ");

        templateMethod();
        // 其他步骤
    }
    abstract protected void templateMethod();

}

class SubClass1 extends AbstractClass{

    @Override
    protected void templateMethod() {
        System.out.println("SubClass1实现特定步骤");
    }
}

class SubClass2 extends AbstractClass{

    @Override
    protected void templateMethod() {
        System.out.println("SubClass2实现特定步骤");
    }
}

源码应用

org.springframework.web.servlet.mvc.AbstractController
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cuidianjay

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

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

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

打赏作者

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

抵扣说明:

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

余额充值