在实际软件系统设计和开发中,会经常遇到这种问题:我们为了完成某项工作购买了一个第三方的库来加快开发。 这就带来了一个问题: 我们在应用程序中已经设计好了接口,与这个第三方提供的接口不一致,为了使得这些接口不兼容的类可以在一起工作,Adapter 模式提供了将一个类(第三方库)的接口转化为客户(购买使用者)希望的接口。
//////////////Adapter.h//////////////////
#pragma once
class Target
{
public:
virtual ~Target();
virtual void Request();
Target();
protected:
private:
}; class Adaptee
{
public:
Adaptee();
~Adaptee();
void SpecificRequest();
}; class Adapter : public Target ,private Adaptee
{
public:
Adapter();
~Adapter();
void Request();
protected:
private:
};
//////////////Adapter.cpp////////////////////
#include "Adapter.h"
#include <iostream>
using namespace std ; Target::Target()
{ }
Target::~Target()
{ }
void Target::Request()
{
cout<<"Target::Request"<<endl;
} Adaptee::Adaptee()
{ }
Adaptee::~Adaptee()
{ }
void Adaptee::SpecificRequest()
{
cout<<"Adaptee::SpecificRequest"<<endl;
} Adapter::Adapter()
{ }
Adapter::~Adapter()
{ }
void Adapter::Request()
{
this->SpecificRequest();
}
//////////////main.cpp//////////////////////////////
#include "Adapter.h"
#include <iostream>
int main()
{
Target* t = new Adapter();
t->Request();
getchar();
return ;
}