适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。这种模式通常用于系统间接口不兼容的情况下,通过适配器来让它们能够一起工作。下面是一个简单的Java适配器模式示例代码。
目标接口
首先,我们定义了目标接口 Target,这是客户端期望的接口:
public interface Target {
void request();
}
适配者类
然后,我们定义了适配者类 Adaptee,它具有不兼容的接口,即客户端无法直接使用的接口:
public class Adaptee {
public void specificRequest() {
System.out.println("Adaptee's specific request");
}
}
适配器类
接下来,我们定义了适配器类 Adapter,它实现了目标接口,并持有适配者类的实例,在 request() 方法中调用了适配者类的方法来实现目标接口:
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
}
客户端代码
最后,我们可以在客户端代码中使用适配器来调用适配者类的方法,实现了与目标接口的兼容:
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
target.request();
}
}
示例说明
- 在这个示例中,
Adaptee类具有一个名为specificRequest()的方法,它是客户端无法直接使用的接口。 Target接口定义了客户端期望的接口,它包含了一个名为request()的方法。Adapter类实现了Target接口,并持有一个Adaptee类的实例,在request()方法中调用了Adaptee类的specificRequest()方法来实现目标接口。- 客户端代码创建了一个
Adaptee类的实例,并通过适配器Adapter将其转换成了目标接口Target的实例,然后调用了request()方法。
通过适配器模式,我们可以在不改变现有代码的情况下,使不兼容的接口能够一起工作,从而提高了代码的复用性和灵活性。