Appearance
适配器模式
意图
将一个类的接口转换成客户希望的另一种接口,使原本因接口不兼容而不能一起工作的类可以协作。
类图(对象适配器,常用)
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 单继承限制较大,对象适配器更灵活。
下一节:桥接模式