0%

设计模式-适配器模式

适配器模式(Adapter pattern),属于结构型模式,可以把源类通过适配器转化为目标接口的实现,使源类可以正常使用。

结构


涉及到了三个角色,target(目标接口)、adaptee(源类)、adapter(适配器)

目标接口

target,目标接口中包含需要使用的方法,示例如下

1
2
3
public interface Yuan {
void useInChina();
}

源类

adaptee,有用的类,但是客户端不能直接使用。示例如下

1
2
3
4
5
6
7
8
9
public class Dollar {
int value;
public Dollar(int value){
this.value = value;
}
public int getValue(){
return value;
}
}

适配器

adapter,目标接口的实现,同时包含着源类,用于连接转化目标接口和源类。示例如下

1
2
3
4
5
6
7
8
9
10
11
12
public class Adapter implements Yuan {
private Dollar dollar;

public Adapter(Dollar dollar){
this.dollar = dollar;
}

@Override
public void useInChina() {
System.out.println("能在中国消费" + dollar.getValue()*7);
}
}

客户端

对如上代码测试,示例如下

1
2
3
4
5
6
public class Client {
public static void main(String[] args) {
Yuan yuan = new Adapter(new Dollar(5));
yuan.useInChina();
}
}

output:

1
能在中国消费35

完整代码

完整代码已上传,项目地址https://github.com/yuan0824/DesignPattern

参考资料