一 概述
为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链,当请求发生的时候,可将请求沿着这条链传递,知道有对象处理它为止。
二 责任链模式
在责任链模式中,我们只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦。
在我们通过SpringMVC开发的时候,利用责任链模式来进行控制器(controller)的定位,通过前端控制器DispatcherServlet来完成请求分发,然后通过HandlerMapping来识别要将请求分发到哪个具体的控制器(controller)上。
SpringMVC会将@RequestMappign注解的value作为key,并把其对应的方法对象作为value保存在一个Map集合中。
这是我对责任链模式在SpringMVC源码中的理解。
初步理解,有待继续分析理解。
待续
参考:设计模式之禅