模式介绍
适配器模式就是把不同的数据源全部整成统一的格式, 每一种数据源对应一个适配器
比如我想要类型是T, 结果有多个数据源(假设3个吧), 返回的的类型是R1, R2, R3;
为了保证本层代码的结构, 我们增加一层适配器层, 每个数据源对应一个适配器, 主要逻辑就是把R1, R2, R3分别转换成T;
以后每新增一个数据源, 就增加一个对应的适配器;
扩展性好, 屏蔽了与业务无关的数据转换;
我觉得现实中最好的类比就是鞋子, 每个人的脚就是不同的数据类型, 通过鞋子(适配大地, 路面)这个适配器, 完美解决不同路面情况
还有插座适配器, 此处应该有图
代码实现
我想的样子
1
2
3
4
public interface Target {
public T request() {}
}
实际的样子
1
2
3
4
public class Adaptee {
public R1 specialRequest() {}
}
中间和稀泥
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Adapter implements Target {
private Adaptee ada;
public T request() {
R1 r1 = ada.specialRequest();
T t = convert(r1);
return t;
}
T convert(R1 r) {}
}
典型应用
-
Spring RequestMappingHandlerAdapter
待补充
-
slf4j里的adapter
Log4jLoggerAdapter
与MDCAdapter