在设计模式 (计算机)中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。
有两类适配器模式:
·对象适配器模式 - 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。
·类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。
#include <iostream>
class Adaptee
{
public:
void SpecialRequest() { std::cout << "Adaptee::SpecialRequest" << std::endl; }
};
class Target
{
public:
virtual ~Target() { }
virtual void Request() { std::cout << "Target::Request" << std::endl; }
};
class Adapter : public Target
{
public:
Adapter(Adaptee *obj)
: _adaptee(obj)
{ }
void Request() { _adaptee->SpecialRequest(); }
private:
Adaptee *_adaptee;
};
int main(void)
{
Adaptee obj;
Target *tar = new Adapter(&obj);
tar->Request();
return 0;
}