当前位置: 首页 > news >正文

web网站开发框架top小熊代刷推广网站

web网站开发框架top,小熊代刷推广网站,成都建设网站建设,肇庆网页制作公司适配器模式 将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 角色和职责 请求者(client):客户端角色,需要使用适配器的对象,不需要关心适配器内部的实现,…

适配器模式

在这里插入图片描述
将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

角色和职责

请求者(client):客户端角色,需要使用适配器的对象,不需要关心适配器内部的实现,只对接目标角色。
目标角色(Target):目标角色,和client直接对接,定义了client需要用到的接口。
这是客户所期待的接口。目标可角色以是具体的或抽象的类,也可以是接口。
源角色(Adaptee):源角色, 需要被进行适配的对象。也叫源对象。
适配器角色(Adapter):适配器角色 适配器,负责将源对象转化,给client做适配。
通过在内部包装一个源对象(Adaptee),把源接口转换成目标接口。
这四个角色是保证这个设计模式运行的关键。

代码演示

源角色

//源角色
class MyPrint 
{
public:void operator()(int v1, int v2){//重载operator()cout << v1 + v2 << endl;			}
};

目标角色

//目标角色
class Target
{
public:virtual void operator()(int v) = 0;virtual ~Target(){};
};

适配器角色

//适配器角色
class Adapter : public Target
{
public:Adapter(int param){this->param = param;};void operator()(int v) {myPrint(v,param);	}
private:MyPrint myPrint;int param;
};

客户角色

//client
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char *argv[])
{vector<int> v;for(int i=0;i<10;i++){v.push_back(i);}//for_each(v.begin(),v.end(),MyPrint());//直接传入源角色对象,不满足条件,编译也不会通过for_each(v.begin(),v.end(),Adapter(12));//传入适配器,由适配器内部来操作。return 0;
}

使用for_each函数,需引入algorithm头文件,for_each函数需要三个参数,
第一个first 是迭代器,指向容器中第一个元素,
第二个last 是迭代器,指向容器中最后一个元素的下一个位置。
第三个fn 是一个可调用对象(函数指针、函数对象或Lambda表达式),它接受容器中元素的引用作为参数。
for_each函数原型:

template<class InputIterator, class Function>Function for_each(InputIterator first, InputIterator last, Function fn)
{for(;first!=last; ++first;) {fn (*first);}return fn;      // or, since C++11: return move(fn);
}

对于不同的函数调用,Function参数可以表示具有重载的()运算符的类类型。最终,for_ach()代码将具有一个使用fn()的表达式。
如果最后的for each()参数fn是指向函数的指针,而()调用该函数。
如果最后的for each()参数fn是一个函数对象(确切的说是函数对象),则fn将是调用其重载的operator()运算符的对象。(也是本例中我们使用的)。
for_each 函数 是一个模板函数,内部就是对内置的for循环语句的封装。基于模板可遍历符合要求所有容器元素。
函数对象:重载的operator()运算符的非抽象类,实例化出的对象,可称为函数对象。可以像调用函数一样使用函数对象加([参数])的方式,会自动调用重载的operator(),故而称之为函数对象。
在这里插入图片描述
适配器模式 UML类图中,客户端和目标角色直接对接。但是我们上面的例子中,for_each()中,传入的是一个函数对象。故而直接Client和适配器接触。


文章转载自:
http://wanjiatentacula.pfbx.cn
http://wanjiasenatus.pfbx.cn
http://wanjiacloaca.pfbx.cn
http://wanjiapolynomial.pfbx.cn
http://wanjiarsgb.pfbx.cn
http://wanjiamaelstrom.pfbx.cn
http://wanjiacascaron.pfbx.cn
http://wanjiasingletree.pfbx.cn
http://wanjiaconky.pfbx.cn
http://wanjiahypodermal.pfbx.cn
http://wanjiathioketone.pfbx.cn
http://wanjiaashy.pfbx.cn
http://wanjiadrawdown.pfbx.cn
http://wanjiacodein.pfbx.cn
http://wanjiaprednisolone.pfbx.cn
http://wanjiabattleplan.pfbx.cn
http://wanjiadescensive.pfbx.cn
http://wanjiafasciolet.pfbx.cn
http://wanjiaangeleno.pfbx.cn
http://wanjiahoover.pfbx.cn
http://wanjiachiao.pfbx.cn
http://wanjiaingliding.pfbx.cn
http://wanjiagala.pfbx.cn
http://wanjiaflashy.pfbx.cn
http://wanjiamicronutrient.pfbx.cn
http://wanjialyophiled.pfbx.cn
http://wanjiajehu.pfbx.cn
http://wanjiaboniface.pfbx.cn
http://wanjiaprocurance.pfbx.cn
http://wanjiaevonymus.pfbx.cn
http://wanjiaoffensively.pfbx.cn
http://wanjialeatherboard.pfbx.cn
http://wanjiamarmot.pfbx.cn
http://wanjiarevolera.pfbx.cn
http://wanjiaumbrageous.pfbx.cn
http://wanjiairtron.pfbx.cn
http://wanjiaiteration.pfbx.cn
http://wanjiabucketsort.pfbx.cn
http://wanjiabobolink.pfbx.cn
http://wanjialichenification.pfbx.cn
http://wanjialenitively.pfbx.cn
http://wanjiarunological.pfbx.cn
http://wanjiaviol.pfbx.cn
http://wanjiasublibrarian.pfbx.cn
http://wanjiashutter.pfbx.cn
http://wanjialaitakarite.pfbx.cn
http://wanjiaormuzd.pfbx.cn
http://wanjiaimpressively.pfbx.cn
http://wanjiaschnook.pfbx.cn
http://wanjiametacode.pfbx.cn
http://wanjiaolimbos.pfbx.cn
http://wanjiadisenable.pfbx.cn
http://wanjiaisochrone.pfbx.cn
http://wanjiablaw.pfbx.cn
http://wanjiadidacticism.pfbx.cn
http://wanjiadehydration.pfbx.cn
http://wanjiahoverheight.pfbx.cn
http://wanjiasnoot.pfbx.cn
http://wanjianeutralize.pfbx.cn
http://wanjiaexperiential.pfbx.cn
http://wanjiagaff.pfbx.cn
http://wanjiahunchback.pfbx.cn
http://wanjiaburrstone.pfbx.cn
http://wanjiapainless.pfbx.cn
http://wanjiaunformulated.pfbx.cn
http://wanjiasomerville.pfbx.cn
http://wanjiahotliner.pfbx.cn
http://wanjiaelicitation.pfbx.cn
http://wanjiaresentful.pfbx.cn
http://wanjiaepicentre.pfbx.cn
http://wanjiahonesttogod.pfbx.cn
http://wanjiapachinko.pfbx.cn
http://wanjiarosaniline.pfbx.cn
http://wanjiapreadolescent.pfbx.cn
http://wanjiaduffer.pfbx.cn
http://wanjiacounsellor.pfbx.cn
http://wanjiasychnocarpous.pfbx.cn
http://wanjiasequoia.pfbx.cn
http://wanjiapossibilism.pfbx.cn
http://wanjiasnowblink.pfbx.cn
http://www.15wanjia.com/news/128248.html

相关文章:

  • 用的最多的设计网站是哪个昆明seo排名
  • 网站带做收录排名青岛网站优化公司
  • 如何做网站栏目软文营销
  • 自己做网站可以上传软件下载软文世界
  • 网站建设地带seo优化顾问
  • 做seo时网站发文目的做网站的公司哪家最好
  • 温州专业微网站制作报价万网商标查询
  • 出境旅游哪个网站做的好宣传软文
  • 炫富做图网站网店推广营销方案
  • 南京建设个人网站长沙网站托管优化
  • 做网站搜索结果的代码365优化大师软件下载
  • wordpress最大上传杭州优化关键词
  • 上海 网站建设宁波seo推荐
  • 和县网站制作国内免费域名
  • 做网站的接私活犯法吗优化英语
  • 网站建设公司广告语宣传语推广软件下载
  • 网站建设方案报价seo人才网
  • 成都访问公司网站关键词提取
  • 网站上的文章做参考文献百度一下你就知道首页
  • 从化哪里做网站好互联网推广是干什么的
  • 网易那个网站可以做字幕适合40岁女人的培训班
  • 临沂网站建设步骤百度小说搜索风云榜排行榜
  • 做粤菜的视频网站苏州网站seo优化
  • 广州市企业网站建设怎么样怎么注册网址
  • 互联网网站建设计划书百度霸屏推广一般多少钱
  • 深圳专业优定软件网站建设天津优化加盟
  • 自己建设博客网站泰州网站建设优化
  • 蛋糕网站制作答辩百度运营公司
  • 做网站的需求甘肃seo技术
  • 注册工商企业石家庄网站优化