1 Adapter

Davids 2025-08-10 05:09:12
Categories: > > Tags:

适配器模式:

系统由于应用环境的变化,常常需要将一些 现存对象 放到 新的环境 中使用,但新环境的 接口 常常是现存对象 不满足的 。
将一个类的接口转换成客户希望的另一个接口,达到接口兼容。(常在一些 组件升级 中使用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Abstract {
public:
virtual void DoNewSomething();
virtual ~Abstract(){}
};

class OldAbstract {
public:
virtual void DoOldSomething();
virtual ~Abstract(){}
};

class AbstractAdapter : public Abstract{
protected:
OldAbstract* m_OldAbstract;
public:
AbstractAdapter(OldAbstract* oldAbstract) : m_OldAbstract(oldAbstract) {}
virtual void DoNewSomething() override {
// 做兼容性逻辑
m_OldAbstract->DoOldSomething();
}
};

class User {
public:
void Do(){
auto oldAbstract = new OldAbstract();
auto abstractAdapter = AbstractAdapter(oldAbstract);
abstractAdapter->DoNewSomething();
}
};