专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

谈谈适配器模式

适配器模式 (Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器 (Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

72_1.png

设计模式的目的本身应该是使得软件设计更具合理性,松耦合,易于扩展。我们在学习的过程中,无论是书上还是博客上,一般都会描述模式的定义、UML 图以及基本的实现方式。但是在我看来,在模式的实现和运用上似乎并不需要完全按照模式本身的结构来。

在 SpringMVC 中适配器模式主要用于执行目标 Controller 中的请求处理方法。

看了一些资料,在这里感觉使用 Adapter 的目的,无非是减少 if 的使用,并且减少大量的请求处理代码和 DispatcherServlet 之前的耦合。因为不同的 Handler 有不同名称的请求处理方法,如果不使用统一接口的 Adapter,势必会添加一些硬编码的类型判断(Controller 和 Servlet 都是 Handler 的一种)。因此封装一系列的 Adapter 与各个类型的 Handler 对应,在 DispatcherServlet 中就可以直接通过 Handler 寻找合适的 Adapter。当然,Adapter 列表会在 Bean 初始化的过程中预先加载好,所以本质上还是遍历匹配类型,但是在写法和设计上和直接使用一组 I if 语句判断有一定的区别。

在 JPA 中也是如此, JpaVendorAdapter 就是一个适配器,不同的 JPA 提供者需要去实现不同的 Adapter。实际上就是一个标准化的过程,这两个例子所表现的都是一致的。虽然有很多的处理者,但是都有统一的方法接入。例如,HandlerAdapter 的 handle() 方法。最典型的插座的例子也是,无论输入的电压是 220v 还是 110v,但我最终需要的就是 5v,这个就需要适配器来进行转换。

设计模式就好比太极剑,不拘泥于招式,用意不用力,在日后开发过程中还需慢慢体会。

Reference

文章永久链接:https://tech.souyunku.com/37931

未经允许不得转载:搜云库技术团队 » 谈谈适配器模式

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们