一、功能
将一个类的接口转换成客户希望的另外一个接口,解决两个已有接口之间不匹配的问题。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
二、结构图
(1)class adapter
(2)object adapter
#include <iostream>
using namespace std;
class Target
{
public :
Target() {}
virtual void Request()=0;
};
class Adaptee
{
public:
Adaptee() {}
void SpecialRequset()
{
cout<<"SpecialRequset of Adaptee"<<endl;
}
};
class Adapter_class:private Adaptee,public Target
{
public:
Adapter_class(){}
void Request()
{
SpecialRequset();
}
};
class Adpater_object:public Target
{
public:
Adpater_object(Adaptee* m_p):m_pAdaptee(m_p){}
void Request()
{
m_pAdaptee->SpecialRequset();
}
private:
Adaptee* m_pAdaptee;
};
int main()
{
//Client1
Target *t=new Adapter_class();
t->Request();
//Client2
Adaptee *p=new Adaptee();
Target *t1=new Adpater_object(p);
t1->Request();
return 0;
}