适配器(Adapter)是一种设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口形式。适配器模式使得原本因接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式通常涉及以下几个角色:
- 目标接口(Target):这是客户端所期望的接口。
- 适配者(Adapter):这是需要被适配的类,它实现了目标接口。
- 适配器(Adapter):这是用来适配适配者的类,它实现了目标接口,并在内部持有适配者的实例,调用适配者的方法来实现目标接口的方法。
下面是一个简单的适配器使用方法的示例:
目标接口(Target)
java
public interface Target {
void request();
}
适配者(Adapter)
java
public class Adaptee {
public void specificRequest() {
System.out.println("Specific request from Adaptee.");
}
}
适配器(Adapter)
```java public class Adapter implements Target { private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
} ```
客户端代码
java
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
target.request(); // 输出: Specific request from Adaptee.
}
}
解释
- 目标接口(Target):定义了客户端所期望的接口
request()
。 - 适配者(Adapter):包含一个
specificRequest()
方法,这个方法需要被适配。 - 适配器(Adapter):实现了目标接口
Target
,并在内部持有适配者Adaptee
的实例。在request()
方法中调用适配者specificRequest()
方法来实现目标接口的方法。
通过这种方式,客户端代码可以与适配者 Adaptee
进行交互,而无需关心适配者的具体实现细节。适配器模式使得代码更加灵活和可扩展。