你知道什么是适配器模式吗?
让 新定义的接口规范 在实现上 能 在不改动老代码的前提下复用老接口功能。
这样调用方只用考虑 新定义的接口规范, 开发者也不用改老代码 , 加个适配器 去实现 新定义的接口规范, 在内部 调用 老接口实例的方法就可以了。
你知道哪些具体的应用实例?
比较清楚的应用实例是 在 SpringBoot 里, SpringMVC 的dispatcherServlet会用到handlerAdapter 。来统一的处理各种类型的控制器。 常见的控制器类型 有 注解@controller或者是直接实现controller,后者基本上没啥人用因为只能处理一个请求路径。
举个实际的例子,一个请求进来, DispatcherServlet会先通过 HandlerMapping , 根据请求路径找到对应的控制器 方法。
然后 找到合适的handlerAdapter, 也就是RequestMappingHandlerAdapter ,接着会去调用 Adapter的handler方法执行 具体的方法。这个例子中 适配器类就是RequestMappingHandlerAdapter。它存在的意义就是为了让 调用方dispatcherServlet 调用目标接口规范 就是 HandlerAdapter接口定义的handler方法的时候, 在不改动 @Controller注解的类 的代码的前提下
使用 @Controller注解的类 的方法,
从技术上来说, 为了让谁能够正常的工作而作适配, 那么 这个谁 就是 被适配的对象 , 比如 手机耳机 加个适配器 才能插在电脑上用, 手机耳机就是被适配的对象