适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类一起工作。
下面是适配器模式的UML图:
下面是C++实现的代码:
/*
* initm.com
* 作者:Stupid
* 时间:2017-11-1 20:51
* 描述: 代码使用QT5.9+MinGW53_32编译通过,代码为适配器模式的基本结构代码。
*/
#include <QCoreApplication>
#include <iostream>
#include <cstdlib>
class Target
{
public:
virtual void Request(){
std::cout << "普通请求!" << std::endl;
}
};
class Adaptee
{
public:
void SpecificRequest(){
std::cout << "特殊请求!" << std::endl;
}
};
class Adapter: public Target
{
private:
Adaptee* adaptee = new Adaptee();
public:
void Request()override final{
adaptee->SpecificRequest();
}
};
int main(int argc, char *argv[])
{
system("chcp 65001");
QCoreApplication a(argc, argv);
Target* target = new Adapter;
target->Request();
return a.exec();
}
适配器模式增加一个适配器类来适应原本不兼容的类。