淘宝客网站建设,管理员网站,强大的网站设计制作,个人建购物网站怎么备案适配器模式:将一个类的接口转换成客户希望的另外一个接口#xff0c;使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
#xff08;将已经写好的#xff0c;但是不符合需求的接口#xff0c;转换成目标接口#xff09;
代码如下:
#include iostream使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
将已经写好的但是不符合需求的接口转换成目标接口
代码如下:
#include iostream
#include vector
#include algorithm
using namespace std;struct MyPrint
{void operator()(int a, int b){cout a b endl;}
};int main()
{vectorintv;for (int i 0; i 10; i){v.push_back(i);}for_each(v.begin(), v.end(), MyPrint());return 0;
}测试结果:
适配器模式 代码如下:
#include iostream
#include vector
#include algorithm
using namespace std;struct MyPrint
{void operator()(int a, int b){cout a b endl;}
};//定义目标接口
class Target
{
public:virtual void operator()(int a) 0;
};//适配器
class Adapter:public Target
{
public:Adapter(int param):param(param){}virtual void operator()(int v){print(v, param);}public:MyPrint print;int param;
};Adapter MyBind2nd(int v)
{return Adapter(v);
}int main()
{vectorintv;for (int i 0; i 10; i){v.push_back(i);}for_each(v.begin(), v.end(), MyBind2nd(10));return 0;
}测试结果: