学习笔记——适配器模式Adapter

适配器模式适用于将不一致的接口转换为一致的接口。

比如,去香港玩儿,带上了自己的笔记本电脑,结果晚上插电时就抓瞎了,电源插孔与插座不一致。WTF……

学习笔记——适配器模式Adapter学习笔记——适配器模式Adapter

插座是酒店装好的,不可能拆了换一个,电源是自己的,也不可能说重新买一个,只有买个转换器了。

学习笔记——适配器模式Adapter

通过转换器,将我们不适配的插头转换成适配的插头。

学习笔记——适配器模式Adapter

CTarget外部接口,理解为所需要插头样式;

CAdapter为适配器(转换器),将不适配插头(CAdaptee)转换为适配样式;

CAdaptee为待适配类,理解为需要转换插头样式的插头。

C++示例

ITarget.h

 #pragma once
class ITarget
{
public:
ITarget(void);
virtual ~ITarget(void);
public:
void Request();
};

ITarget.cpp

 #include "ITarget.h"
#include <iostream> ITarget::ITarget(void)
{
} ITarget::~ITarget(void)
{
} void ITarget::Request()
{
std::cout<<"Target"<<std::endl;
}

Adapter.h

 #pragma once
#include "itarget.h"
#include "Adaptee.h" class Adapter :
public ITarget
{
public:
Adapter(void);
Adapter(Adaptee* tee);
~Adapter(void);
public:
void Request();
private:
Adaptee* mAde;
};

Adapter.cpp

 #include "Adapter.h"

 Adapter::Adapter(void)
{
} Adapter::Adapter(Adaptee* tee)
{
this->mAde = tee;
} Adapter::~Adapter(void)
{
} void Adapter::Request()
{
mAde->Request();
}

Adaptee.h

 #pragma once
class Adaptee
{
public:
Adaptee(void);
~Adaptee(void);
public:
void Request();
};

Adaptee.cpp

 #include "Adaptee.h"
#include <iostream> Adaptee::Adaptee(void)
{
} Adaptee::~Adaptee(void)
{
} void Adaptee::Request()
{
std::cout<<""<<std::endl;
}

main.cpp

 #include "Adaptee.h"
#include "Adapter.h" int main()
{
Adaptee* ade = new Adaptee();
Adapter* pTarget = new Adapter(ade);
pTarget->Request();
return ;
}
上一篇:Docker容器与镜像管理


下一篇:java学习-java.lang.Math随机数生成