Skip to content

适配器模式

意图

将一个类的接口转换成客户希望的另一种接口,使原本因接口不兼容而不能一起工作的类可以协作。

类图(对象适配器,常用)

Java 示例

java
/** 目标:应用只认此接口 */
public interface Payment {
    void payYuan(int amountFen);
}

/** 第三方库:美分 */
public class StripeClient {
    public void chargeCents(long cents) {
        System.out.println("Stripe charge " + cents + " cents");
    }
}

public class StripeAdapter implements Payment {
    private final StripeClient client = new StripeClient();
    @Override
    public void payYuan(int amountFen) {
        // 演示:假设业务上「分」与第三方「美分」一一对应,真实项目需按汇率换算
        client.chargeCents(amountFen);
    }
}

JDK:java.io.InputStreamReader 适配字节流到字符流。

类适配器

通过继承 Adaptee 并实现 Target,Java 单继承限制较大,对象适配器更灵活。

下一节:桥接模式