美文网首页
策略模式和SpringMVC

策略模式和SpringMVC

作者: 黄靠谱 | 来源:发表于2019-02-22 12:27 被阅读3次

概述

解决的问题:降低代码冗余度。

适用的业务场景:同一类型业务的类,有很多公用的流程和方法,只是在核心方法上略有区别,为了降低代码的冗余度,单独把不同的方法抽象成一个接口,各自业务类实现自己的核心方法。

比如在Spring MVC中,有4种类似的Handler类,抽象成一个HandlerAdapter接口,业务类根据自己的特点,执行各自的handler()方法。最终降低代码冗余度,可维护性提高。

源码分析

DispatcherServlet.doDispatch

protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {
    ModelAndView mv = null;

    // Determine handler for the current request.
    mappedHandler = getHandler(processedRequest);

    // Determine handler adapter for the current request.
    HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());

    // Actually invoke the handler.
    mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

    applyDefaultViewName(processedRequest, mv);
    mappedHandler.applyPostHandle(processedRequest, response, mv);
    processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);
    
}

HandlerAdapter 代表的不同类型的Handler们


image

相关文章

  • 策略模式和SpringMVC

    概述 解决的问题:降低代码冗余度。 适用的业务场景:同一类型业务的类,有很多公用的流程和方法,只是在核心方法上略有...

  • 策略模式和状态模式

    不怕跌倒,所以飞翔 本文中知识点概述: 策略模式和状态模式的基本概念 策略模式和状态模式的区别 策略模式和状态模式...

  • java 策略模式

    策略模式1.策略模式简介策略模式:策略模式是一种行为型模式,它将对象和行为分开,将行为定义为 一个行为接口 和 具...

  • 设计模式(Swift) - 单例模式、备忘录模式和策略模式

    设计模式(Swift) - 单例模式、备忘录模式和策略模式 设计模式(Swift) - 单例模式、备忘录模式和策略模式

  • 设计模式之--策略模式及其在JDK中的应用

    前言:本文主要介绍设计模式中的策略模式,准备按照以下几个方面展开: 什么是策略模式 策略模式结构和UML图 策略模...

  • iOS开发之设计模式 - 策略模式

    由《大话设计模式 - 策略模式》的OC和部分Swift的语言转义 策略模式 继上一篇《简单工厂模式》 策略模式,定...

  • SpringMVC开发 知识点速查

    SpringMVC入门 什么是SpringMVC 实现MVC设计模式的框架 SpringMVC核心组件 Dispa...

  • 设计模式-策略模式和工厂模式结合使用

    怎么把策略模式和工厂模式结合起来使用 如果大家对策略模式和工厂模式不是很了解的话可以先看前面文章策略模式:http...

  • 设计模式之策略模式

    策略模式 1、什么是策略模式     策略模式让算法独立于使用它的客户而独立变化。策略模式重点是封装不同的算法和行...

  • 各种设计模式总结和对比

    模板方法模式和策略模式 1、模板方法和策略模式都有封装算法。2、策略模式是使不同算法可以相互替换,且不影响客户端应...

网友评论

      本文标题:策略模式和SpringMVC

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