实用指南:java设计模式 -【适配器模式】

适配器模式的定义

适配器模式(Adapter Pattern)是一种结构型设计模式,用于解决接口不兼容问题。通过将一个类的接口转换成客户端期望的另一个接口,使原本因接口不匹配而无法工作的类能够协同工作。

核心角色

目标接口(Target):客户端期望的接口,可以是抽象类或接口。
适配器(Adapter):实现目标接口,并持有被适配者的实例,通过调用被适配者的方法实现接口转换。
被适配者(Adaptee):需要被适配的现有类或接口

实现方式

适配器继承被适配者并实现目标接口,直接复用被适配者的方法。

类适配器(通过继承)

适配器继承被适配者并实现目标接口,直接复用被适配者的方法。

// 目标接口 
interface Target {
void request();
}
// 被适配者 
class Adaptee
{
void specificRequest() {
System.out.println("Adaptee method called");
}
}
// 类适配器 
class ClassAdapter
extends Adaptee implements Target {
@Override
public void request() {
specificRequest();
// 调用被适配者的方法 
}
}

对象适配器(通过组合)

适配器持有被适配者的实例,通过委托调用其方法。

// 对象适配器 
class ObjectAdapter
implements Target {
private Adaptee adaptee;
public ObjectAdapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
}

应用场景

1.旧系统接口与新系统不兼容时,通过适配器复用旧代码。
2.需要使用第三方库但接口与现有代码不匹配时。
3.统一多个类的接口以简化客户端调用。

示例代码(客户端调用)

public class Client
{
public static void main(String[] args) {
// 类适配器调用 
Target classAdapter = new ClassAdapter();
classAdapter.request();
// 对象适配器调用 
Adaptee adaptee = new Adaptee();
Target objectAdapter = new ObjectAdapter(adaptee);
objectAdapter.request();
}
}
posted @ 2025-08-10 15:04  yfceshi  阅读(10)  评论(0)    收藏  举报