1. 业务场景
通过解读SpringMVC的源码可知,HandlerAdapter使用了典型的适配器模式,解决了由于Controller的类型不同,有多重实现方式,那么调用方式就不是确定的,如需调用Controller则需要循环判断Controller实例列表中是否有满足条件的实例,并且如果我们增加一个新的Controller,就要在代码中加入一行判断逻辑,这种形式就使得程序难以维护,也违反了设计模式中的开闭原则 – 对扩展开放,对修改关闭。
2. 传统处理/适配器模式
2.1 传统模式
if(mappedHandler.getHandler() instanceof MultiActionController){
((MultiActionController)mappedHandler.getHandler()).xxx
}else if(mappedHandler.getHandler() instanceof XXX){
...
}else if(...){
...
}
2.2 适配器模式
2.3 什么是适配器模式
https://blog.youkuaiyun.com/u012401711/article/details/52627802 (喜欢这类大神的讲解,形象便于理解,有兴趣的同学可以看看)