适配器模式属于接口隔离模式。
适配器模式是一种补就模式,适配器中应该又客户希望的统一接口,继承那些接口不兼容的类,修改接口使其兼容。
意图:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
优缺点
优点:可以将不符合要求的接口转换为需要的接口。
缺点:凭空多了一个适配类。
使用场景
想使用一个已经存在的类,但接口不符合你的要求。
示例代码
#include <iostream>
#include <string>
using namespace std;
/*****原系统A:Target*****/
class MangeSystemA
{
public:
virtual void getName()
{
cout << "获取系统A中员工的名称" << endl;
}
};
/*****要集成的系统B:Adaptee*****/
class MangeSystemB
{
public:
virtual void getPeopleName()
{
cout << "获取系统B中员工的名称" << endl;
}
};
/***适配器:Adapter***/
class AdapterSystem : public MangeSystemA
{
public:
AdapterSystem(MangeSystemB *pSysB) :m_pSysB(pSysB) {}
virtual void getName()
{
m_pSysB->getPeopleName();
}
private:
MangeSystemB *m_pSysB;
};
/****系统A工作场景****/
int main()
{
MangeSystemB *sysB = new MangeSystemB;
//创建适配器
MangeSystemA *sysA = new AdapterSystem(sysB);
sysA->getName();
return 0;
}
转载文章
设计模式之适配器模式(C++)
网友评论