适配器模式:
将一个类的接口转换成另外一个期望的类的接口。适配器允许接口互不兼容的类一起工作。
Convert the interface of a class into another interface clients expect.
Adapter lets classes work together that couldn‘t otherwise because of
incompatible interfaces.
简单的说,适配器模式就是增加一个中间层,记得有句话叫做软件开发中的一切问题都可以通过增加一个中间层来解决。
UML图如下:
注意Adapter和Adaptee的关系只是Adapter需要Adaptee中的某些功能,并且需要遵循Target的接口。Adapter与Target是继承层次的关系,与Adaptee是关联层次的关系。
主要包括:
C++代码实现如下;
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
class Adaptee
{
public:
void specialRequest()
{
std::cout<<"call specialRequest"<<std::endl;
}
};
class Target
{
public:
virtual void request()
{
std::cout<<"call request"<<std::endl;
}
};
class Adapter:public Target
{
public:
Adapter()
{
}
Adapter(Adaptee * a)
{
adaptee=a;
}
void request()
{
adaptee->specialRequest();
}
private:
Adaptee * adaptee;
};
int main()
{
Adaptee * ape=new Adaptee();
Target * adapter=new Adapter(ape);
adapter->request();
return 0;
}
执行输出:
原文地址:http://blog.csdn.net/u012501459/article/details/46399909