定义: 将一个类的接口转换成客户希望的另外一个接口
UML图:
代码实现:
class Target
{
public:
Target(){}
virtual ~Target(){}
virtual void Request()
{
cout<<"Target::Request"<<endl;
}
};
class Adaptee
{
public:
void SpecificRequest()
{
cout<<"Adaptee::SpecificRequest"<<endl;
}
};
class Adapter : public Target
{
public:
Adapter() : m_Adaptee(new Adaptee) {}
~Adapter()
{
if (m_Adaptee != NULL)
{
delete m_pAdaptee;
m_pAdaptee= NULL;
}
}
void Request()
{
m_pAdaptee->SpecificRequest();
}
private:
Adaptee *m_pAdaptee = nullptr;
};
int main(int argc, char *argv[])
{
Target *targetObj = new Adapter();
targetObj->Request();
return 0;
}