//适配器模式
#pragma once
#include <iostream>
using std::cout;
using std::endl;
//系统所需标准
class IStandard {
public:
virtual void request() = 0;
};
//已有的功能,但是接口和系统所需标准不同
class Adaptee {
public:
void specificRequest() {
cout << "不同于request()的特殊接口specificRequest() "<<endl;
}
};
//适配器
class Adapter :public IStandard{
private:
Adaptee *adaptee = new Adaptee();
public:
Adapter() {}
~Adapter() {
delete adaptee;
}
virtual void request() {
adaptee->specificRequest();
}
};
//适配器模式
cout << endl << "适配器模式" << endl;
IStandard *st = new Adapter();
st->request();//通过标准接口,调用了与标准接口不一样的函数specificRequest()
delete st;
st = nullptr;