7.适配器模式
适配器模式(Adapter Pattern)的主要目的是把“不兼容接口”转换成调用方期望的接口,避免业务代码直接适配各种旧系统
适合使用适配器模式的场景
- 接入旧系统或第三方 SDK 时接口不一致
- 希望平滑迁移老接口,不大规模改业务代码
- 需要统一多个供应商的调用方式
- 希望把兼容逻辑收敛在一层而不是散落在业务里
目标接口与被适配者
interface Logger {
log(level: "info" | "error", message: string): void;
}
class LegacyLogger {
write(text: string): void {
console.log(`[legacy] ${text}`);
}
}适配器实现
class LoggerAdapter implements Logger {
constructor(private legacy: LegacyLogger) {}
log(level: "info" | "error", message: string): void {
this.legacy.write(`${level.toUpperCase()}: ${message}`);
}
}使用示例
function runTask(logger: Logger): void {
logger.log("info", "task started");
logger.log("error", "task failed");
}
runTask(new LoggerAdapter(new LegacyLogger()));