适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。这种模式通常用于系统间接口不兼容的情况下,通过适配器来让它们能够一起工作。下面是一个简单的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()
方法。
通过适配器模式,我们可以在不改变现有代码的情况下,使不兼容的接口能够一起工作,从而提高了代码的复用性和灵活性。