设计模式之适配器模式-配不配?试试就知道!
一、适配器模式的概念
适配器模式是构造型模式之一,通过适配器模式可以改变已有类的接口形式,以适应客户端的调用需要,从而使原来不能兼容的类可以兼容在一起工作。
二、适配器模式使用场景
1、适用于将一个类的接口转换成客户端可以调用接口,使得原本由于接口不兼容的类可以兼容工作在一起。
三、适配器模式构建方法
1、目标接口类
提供客户端可以调用的接口。
2、适配者类
需要适配的类。
3、适配器类
将适配者类转换成目标接口类,该类是适配器模式的核心类。
四、适配器模式的示例
// AdapterPattern.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <string>
using namespace std;
// 目标接口类
class Voltage11V
{
public:
void use11vPower()
{
cout << "use 11V power" << endl;
}
private:
};
// 适配者类
class Voltage220V
{
public:
void use220vPower()
{
cout << "use 220V power" << endl;
}
private:
};
// 适配器类
class AdapterVol : public Voltage11V
{
public:
AdapterVol(Voltage220V *pVol220V)
{
m_pVol220v = pVol220V;
}
void use11vPower()
{
cout << "适配器将220V电压转换成需要的11V电压" << endl;
m_pVol220v->use220vPower();
}
private:
Voltage220V *m_pVol220v;
};
#define DELETE_PTR(p) {if(p!=nullptr){delete (p); (p)=nullptr;}}
int main()
{
cout << "--------适配器模式----------" << endl;
Voltage220V *pVol220V = new Voltage220V;
AdapterVol *pAdapterVol = new AdapterVol(pVol220V);
pAdapterVol->use11vPower();
DELETE_PTR(pVol220V);
DELETE_PTR(pAdapterVol);
std::cout << "Hello World!\n";
getchar();
}
运行结果:
五、适配器模式的优缺点
优点:
1、可以使两个没有关联的类能够一起运行工作。
2、提高类的复用。
缺点:
1、适配器使用过多的话容易造成系统的混乱,不建议过多使用。
能力有限,如有错误,多多指教。。。
本文为博主原创文章,未经博主允许请勿转载!作者:ISmileLi