一、介绍

概念:一个类的接口转换成客户端希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。即根据已有的接口,生成想要的接口。

先看下面这个小例子体会一下适配器模式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class AppTest {
/**
*
* 符合开闭原则,源代码没有进行修改
* 也符合组合优于继承原则(只是进行复用)
*/
public static void main(String[] args) {
Calculate calculate = new Calculate(); // 原来的接口是接两个
CalcAdapter calcAdapter = new CalcAdapter(calculate); // 做个适配器,可以接收三个
int add = calcAdapter.add(1, 2, 3);
System.out.println(add);
}
}

// 基本计算器
class Calculate {
public int add(int a, int b) {
return a + b;
}
}

// 变化来了,客户想要计算三个数的和 - 采用适配器模式的方式,将接口转换成我们需要的形式
class CalcAdapter {
private Calculate calculate; // 复用其功能,采用组合的方式。组合需要被是适配的类

public CalcAdapter(Calculate calculate) {
this.calculate = calculate;
}

public int add(int a, int b, int c) {
return calculate.add(a, calculate.add(b, c)); // 做到对功能的复用
}
}