设计模式——结构型
更新: 1/11/2025 字数: 0 字 时长: 0 分钟
适配器模式
业务场景
在一些场合下,我们的一个方法的参数只有固定一个,但是我们会有很多不同的类都想进入这个参数, 比如我们读取用户信息,可以从数据库中读取,也可以从excel文件中读取, 但读出的数据如果不经过处理的话是不一样的, 这时我们就可以想到一个方案: 重写一个方法,定义同名不同参的方法。
这种方法固然有效,但写着写着我们很有可能会再次发现一个问题,那就是这两个方法的重复内容有点多。 (亦或是两个方案(一老一新)都已经开发好了,只是我们的客户端希望适配不同的版本)
那么我们有没有更好的方法来实现代码的复用呢?
我们可以默认定死一个方案为需要的解决方案(出参入参定死), 那么现在我们的问题就是如何让另一个方案来接受同样的入参,同时返回同样的出参。
这三种都可以使用适配器模式
有两种实现方式
- 定义类型转换适配器,在业务层转换出参入参
- 定义方法适配器,实现另一个方案的所有接口,然后在实现中跟据不同情况调用适合的另一个方案的接口