盒子
盒子
文章目录
  1. 1. 鸭子、火鸡接口
  2. 2. 火鸡实现器
  3. 3. 火鸡适配器
  4. 4. 测试
  5. 5. 输出

适配器模式

适配器模式:将一个类的接口,转换为客户期望的另一个类的接口。适配器让原本接口不兼容的类可以合作无间。

1. 鸭子、火鸡接口

1
2
3
4
public interface Duck {
void quack();
void fly();
}
1
2
3
4
public interface Turkey {
void gobble();
void fly();
}

2. 火鸡实现器

1
2
3
4
5
6
7
8
9
10
11
12
public class WildTurkey implements Turkey {

@Override
public void gobble() {
System.out.println("Gobble gobble");
}

@Override
public void fly() {
System.out.println("I am flying a short distance");
}
}

3. 火鸡适配器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class TurkeyAdapter implements Duck {
private Turkey turkey;

public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}

@Override
public void quack() {
turkey.gobble();
}

@Override
public void fly() {
for (int i = 0; i < 5; i++) {
turkey.fly();
}
}
}

4. 测试

1
2
3
4
5
6
7
8
9
10
11
public class AdpterTest {

@Test
public void testDuckAdapter() {
Turkey wildTurkey = new WildTurkey();
Duck turkeyAdapter = new TurkeyAdapter(wildTurkey);

turkeyAdapter.quack();
turkeyAdapter.fly();
}
}

5. 输出

Gobble gobble
I am flying a short distance
I am flying a short distance
I am flying a short distance
I am flying a short distance
I am flying a short distance

再如旧世界的Enumeration与新世界的Iterator进行适配

支持一下
扫一扫,支持沈健
  • 微信扫一扫
  • 支付宝扫一扫