适配器模式在SpringMVC应用
- 查看DispatcherServlet
public class DispatcherServlet extends FrameworkServlet {
// 通过HandlerMapping来映射Controller
mappedHandler = getHandler(processedRequest);
//获取适配器
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());
//..
// 通过适配器调用controller的方法并返回ModelAndView
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
}
-
Spring创建了一个适配器接口(HandlerAdapter)
-
HandlerAdapter的实现子类使得每一种Controller有一种对应的适配器实现,每种Controller有不同的实现方式
-
DispatcherServlet的getHandlerAdapter方法,根据需要返回适当的HandlerAdapter
-
适配器模式的注意事项和细节
1) 三种命名方式,是根据 src是以怎样的形式给到Adapter(在Adapter里的形式)来命名的
2) 类适配器:以类给到,在Adapter里,就是将src当做类,继承对象适配器:以对象给到,在Adapter里,将src作为一个对象,持有接口适配器:以接口给到,在Adapter里,将src作为一个接口,实现
3) Adapter模式最大的作用还是将原本不兼容的接口融合在一起工作。
4) 实际开发中,实现起来不拘泥于我们讲解的三种经典形式