通八洲科技

c++的适配器模式(Adapter Pattern)是什么 如何兼容不兼容的接口【设计模式】

日期:2025-12-31 00:00 / 作者:穿越時空
适配器模式通过新增中间层解决接口不兼容问题:对象适配器用组合更灵活,类适配器用多重继承耦合强;需处理资源管理、异常转换和线程安全。

适配器模式是一种结构型设计模式,它让原本接口不兼容的类能够协同工作。核心思路不是修改原有类的代码,而是新增一个“中间层”——适配器类,负责把客户端期望的接口,转换成被适配者实际提供的接口。

为什么需要适配器:接口不匹配的典型场景

比如你有一个旧的支付模块 LegacyPaymentSystem,它只提供 processPayment(int amount) 方法;但新订单系统要求调用 charge(double price, const std::string& currency)。两者参数类型、名称、语义都不同,直接调用会编译失败或逻辑错乱。这时不能改旧系统(可能没源码或影响大),也不能硬凑新接口——适配器就是这个桥梁。

对象适配器:通过组合实现,更常用也更灵活

适配器持有被适配者的实例,将客户端请求“翻译”后委托给它:

类适配器(C++中受限,需多重继承)

C++ 支持多重继承,理论上可以让适配器同时继承目标接口和被适配类:

关键细节:别漏掉资源与异常处理

适配不是简单函数转发。要注意: