适配器不是在详细设计时添加的,而是解决正在服役的项目的问题
// 已经存在的功能(需要适配的类)
class Adaptee {
public:
void process() {
cout << "old class";
}
};
// 客户想要调用的类
class Target {
public:
virtual void handle() = 0;
virtual ~Target() = default;
};
class Adapter : public Target {
public:
Adapter() {
this->adaptee = new Adaptee;
}
~Adapter() {
delete this->adaptee;
}
void handle() override {
adaptee->process();
}
private:
// 需要适配类作为成员变量
Adaptee *adaptee;
};