适配器模式(结构型)
1、适配器模式(Adapter),是将某各类接口转换成另一个客户期待的接口------实现接口不匹配兼容问题。
2类图如下:
如图所示,将AdapterB中的Method()转换为一个可以传参的方法。
#include<iostream>
using namespace std;
class AdapterBase{
public:
virtual void Method() = 0;
virtual ~AdapterBase() {
cout<<"ABase的析构"<<endl;
}
};
class Adaptee{
public:
void Method(int x) {
cout<<"x = "<<x<<endl;
}
~Adaptee() {
cout<<"tee的析构"<<endl;
}
};
class AdapterB:public AdapterBase{
private:
Adaptee* pAdaptee;
public:
AdapterB(Adaptee *t) {
pAdaptee = t;
}
void Method() {
pAdaptee->Method(3);
}
~AdapterB() {
cout<<"AdB的析构"<<endl;
}
};
int main() {
Adaptee *pAdaptee = new Adaptee();
AdapterBase* pAdapterBase = new AdapterB(pAdaptee);
pAdapterBase->Method();
delete pAdaptee;
delete pAdapterBase;
return 0;
}
简单的理解就是原本客户需要一个可以传参的接口,但是该类都是无参接口,所以要将一个无参接口变化为可以传参的接口,但是如果在原来的类中改的的话会破坏多态的存在,所以就要有一个接口进行转换,用原来类中的方法去调转换接口中的含参方法,因此就转换为客户需求的功能了!