Adapter模式:
:将一个类的接口转化为客户希望的接口.
Good:使得原本由于接口不兼容而不能一起工作的那些类能够一起工作.
主要应用于希望复用一些现存的类,但是接口又与复用环境不相容的情况.
Pic:
Adapter Pattern(类模式)结构图
Adapter Pattern(对象模式)结构图
Code:
#include <iostream>
using namespace std;
class Target
{
public:
virtual void Request()
{
cout << "普通的请求" << endl;
}
};
//要适配的类
class Adaptee
{
public:
void SpecificalRequest()
{
cout << "特殊请求" << endl;
}
};
//将Adaptee打包,从而实现与Target有相同接口
class Adapter :public Target
{
private:
Adaptee* ada;
public:
virtual void Request()
{
ada->SpecificalRequest();
Target::Request();
}
Adapter()
{
ada = new Adaptee();
}
~Adapter()
{
delete ada;
}
};
//客户端:
int main()
{
Adapter * ada = new Adapter();
ada->Request();
delete ada;
cin.get();
return 0;
}