現有系統需使用第三方類 Adaptee,但其接口 specificRequest() 與系統期望的 Target::request() 不兼容。適配器將 Adaptee 包裝為 Target 子類,實現接口轉換。
class Adapter : public Target {
Adaptee* adaptee;
public:
Adapter() : adaptee(new Adaptee) {}
void request() override { adaptee->specificRequest(); }
~Adapter() { delete adaptee; }
};
Adaptee 及其子類,符合「組合優於繼承」。Adaptee 的行為(需子類化)。

specificRequest(); }
};
void client_code(Target* t) { t->request(); }
int main() {
Target* t1 = new Target;
Target* t2 = new Adapter;
client_code(t1); // Target::request
client_code(t2); // Adaptee::specificRequest
delete t1; delete t2;
}