适配器模式:
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
适用场景:
复用现有的类,但接口却不相同。
#include <iostream>
using namespace std;
class Target {
public:
virtual void Request() {}
};
class Adaptee {
public:
void SourceRequest() {
cout<< "SourceRequest" << endl;
}
};
class Adapter : public Adaptee, public Target {
public:
void Request() {
this->SourceRequest();
}
};
class AdapterI : public Target {
public:
AdapterI() {
adapter_ = new Adaptee();
}
virtual ~AdapterI() {
if (adapter_) {
delete adapter_;
}
adapter_ = NULL;
}
private:
Adaptee* adapter_;
public:
void Request() {
adapter_->SourceRequest();
}
};
#include "main.h"
int main(int argc, char* argv[]) {
Target* t = new Adapter();
t->Request();
Target* t2 = new AdapterI();
t2->Request();
}
原文:http://my.oschina.net/hejiula/blog/308770