意图:将一个类的接口转换为Client希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类在一起工作。
UML图

Target:定义Client使用的与特定领域相关的接口。
Client:与符合Target接口的对象协同工作。
Adaptee:定义一个已经存在的接口,这个接口需要适配。
Adapter:对Adaptee的接口与Target接口进行适配。

代码:
#include <iostream>
#include <list>
using namespace std;
class Target{
public:
virtual void Request(){
cout << "Target:普通请求" << endl;
}
};
class Adaptee{
public:
void SpecificRequest(){
cout << "Adaptee:特殊请求" << endl;
}
~Adaptee(){
cout << "delete Adaptee" << endl;
}
};
class Adapter:public Target
{
public:
Adaptee *adaptee;
Adapter(){
adaptee = new Adaptee();
}
void Request(){
adaptee->SpecificRequest();
}
~Adapter(){
cout << "delete Adapter" << endl;
delete adaptee;
}
};
int main(void){
Target *t1 = new Target();
t1->Request();
Target *t2 = new Adapter();
t2->Request();
return 0;
}
结果
Target:普通请求
Adaptee:特殊请求
适配器模式:实现接口之间的兼容性
本文介绍了如何使用适配器模式,将Adaptee类的接口转换为Target接口,以便让原本接口不兼容的类在项目中协同工作。通过代码示例展示了如何创建Adapter类作为适配层,实现不同接口之间的转换。
494

被折叠的 条评论
为什么被折叠?



