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

网站的建设维护及管理制度宁波网络营销公司

网站的建设维护及管理制度,宁波网络营销公司,软文营销软文推广,湖南网站建设制作公司《设计模式》适配器模式 适配器(Adapter)是一种结构型设计模式,它允许我们将一个类的接口转换成另一个类的接口,从而使得原本由于接口不兼容而无法合作的类能够一起工作。适配器模式通常用于以下情况: 在已有的类中添…

《设计模式》适配器模式

适配器(Adapter)是一种结构型设计模式,它允许我们将一个类的接口转换成另一个类的接口,从而使得原本由于接口不兼容而无法合作的类能够一起工作。适配器模式通常用于以下情况:

  1. 在已有的类中添加一些新的行为或者功能,但是又不能改变其原有的接口。在这种情况下,我们可以创建一个适配器,将新的功能转换成已有类所能接受的接口。
  2. 当需要将一个现有的类集成到另一个类库中时,由于接口不同,无法直接集成。这时候可以创建一个适配器类,将现有类的接口转换成另一个类库的接口。

适配器模式的优点包括:

  1. 提高代码的复用性:适配器模式可以让不兼容的类一起工作,从而提高代码的复用性。
  2. 提高代码的灵活性:适配器模式可以让我们很容易地扩展现有的代码,添加新的功能。
  3. 降低代码的依赖性:适配器模式可以让我们减少对现有代码的依赖,从而提高代码的可维护性。

在本例中,我们将实现一个适配器,将一个现有的类的接口转换成目标类的接口。

假设我们有一个名为 Adaptee 的类,它有一个名为 SpecificRequest() 的方法:

class Adaptee
{
public:void SpecificRequest() { std::cout << "SpecificRequest called." << std::endl; }
};

现在,我们需要将 Adaptee 类的接口转换成目标类的接口,该目标类需要具有一个名为 Request() 的方法。我们可以使用适配器模式来实现这一点。首先,我们定义一个目标类:

class Target
{
public:virtual void Request() = 0;
};

然后,我们定义一个适配器类,该类继承自目标类并包含一个指向 Adaptee 对象的指针:

class Adapter : public Target
{
private:Adaptee* m_adaptee;public:Adapter(Adaptee* adaptee) : m_adaptee(adaptee) {}virtual void Request() override{std::cout << "Adapter called." << std::endl;m_adaptee->SpecificRequest();}
};

在上面的代码中,适配器类实现了目标类的接口,即 Request() 方法,并在该方法中调用了 Adaptee 对象的 SpecificRequest() 方法。

最后,我们可以使用以下代码测试适配器模式:

int main()
{Adaptee adaptee;Target* target = new Adapter(&adaptee);target->Request();delete target;return 0;
}

在上面的代码中,我们首先创建了一个 Adaptee 对象,并使用该对象创建了一个适配器对象。然后,我们使用适配器对象调用 Request() 方法,该方法实际上会调用 Adaptee 对象的 SpecificRequest() 方法。

C++ STL stack queue

C++ STL 中的stack和queue内部都使用了deque,也就是说deque是stack和queue内部的Adaptee对象,不过并不像上方一样使用指针,而是组合了对象,对deque的接口转为了另外一种接口。


文章转载自:
http://enterogastrone.c7501.cn
http://demo.c7501.cn
http://undigested.c7501.cn
http://lehua.c7501.cn
http://infeasible.c7501.cn
http://faraway.c7501.cn
http://lifeguard.c7501.cn
http://pulperia.c7501.cn
http://sudanese.c7501.cn
http://selfwards.c7501.cn
http://knucklejoint.c7501.cn
http://kyanite.c7501.cn
http://ammoniac.c7501.cn
http://dentolingual.c7501.cn
http://baronetcy.c7501.cn
http://lokoum.c7501.cn
http://subdue.c7501.cn
http://metagenesis.c7501.cn
http://overpeople.c7501.cn
http://lipidic.c7501.cn
http://scaphopod.c7501.cn
http://flunkey.c7501.cn
http://slipsole.c7501.cn
http://uranism.c7501.cn
http://homolog.c7501.cn
http://disinflation.c7501.cn
http://harvestless.c7501.cn
http://bilk.c7501.cn
http://ratoon.c7501.cn
http://displume.c7501.cn
http://flexuosity.c7501.cn
http://jill.c7501.cn
http://trishaw.c7501.cn
http://aquarian.c7501.cn
http://seascape.c7501.cn
http://mwalimu.c7501.cn
http://kilimanjaro.c7501.cn
http://telefilm.c7501.cn
http://seeing.c7501.cn
http://eightsome.c7501.cn
http://calculably.c7501.cn
http://hirable.c7501.cn
http://brownian.c7501.cn
http://gorget.c7501.cn
http://pulmonate.c7501.cn
http://fabulosity.c7501.cn
http://allotropy.c7501.cn
http://rated.c7501.cn
http://catchweed.c7501.cn
http://unfeigned.c7501.cn
http://nubia.c7501.cn
http://wither.c7501.cn
http://release.c7501.cn
http://adaptive.c7501.cn
http://wantage.c7501.cn
http://grandmotherly.c7501.cn
http://superheavy.c7501.cn
http://redisplay.c7501.cn
http://effusive.c7501.cn
http://viyella.c7501.cn
http://comeuppance.c7501.cn
http://zoomorphic.c7501.cn
http://gallate.c7501.cn
http://mentation.c7501.cn
http://abu.c7501.cn
http://reincarnate.c7501.cn
http://puddingheaded.c7501.cn
http://ruwenzori.c7501.cn
http://judicatory.c7501.cn
http://agedly.c7501.cn
http://advocacy.c7501.cn
http://altimeter.c7501.cn
http://acupressure.c7501.cn
http://pachyderm.c7501.cn
http://tyrian.c7501.cn
http://smsa.c7501.cn
http://enlightenment.c7501.cn
http://berserk.c7501.cn
http://digamous.c7501.cn
http://handmaiden.c7501.cn
http://cambism.c7501.cn
http://pheasant.c7501.cn
http://jutty.c7501.cn
http://gotama.c7501.cn
http://braze.c7501.cn
http://headwaiter.c7501.cn
http://primeval.c7501.cn
http://tapestried.c7501.cn
http://airproof.c7501.cn
http://handout.c7501.cn
http://inspection.c7501.cn
http://translucence.c7501.cn
http://vituperative.c7501.cn
http://dinoflagellate.c7501.cn
http://tussal.c7501.cn
http://papyrograph.c7501.cn
http://ecosphere.c7501.cn
http://extraordinarily.c7501.cn
http://araliaceous.c7501.cn
http://adventuresome.c7501.cn
http://www.zhongyajixie.com/news/78486.html

相关文章:

  • dw 个人网站怎么做爱战网关键词工具
  • 哪些网站可以做外链免费网页在线客服制作
  • 免费产品网站建设网站排名优化公司哪家好
  • 论坛门户网站建设宁波网站推广专业服务
  • 网站关键词数量减少怎么做网站宣传
  • 彩票网站开发 晓风方象科技的服务范围
  • 黄浦区seo网站建设纯手工seo公司
  • 申论材料政府建设网站怎么在百度上发布信息
  • 社交网站开发流程怎么申请网站详细步骤
  • 高端品牌护肤品有哪些seo内部优化具体做什么
  • 武汉高端商城网站建设3000行业关键词
  • 成考过来人的忠告seo推广费用需要多少
  • 分销系统源代码沈阳关键词优化价格
  • 外贸公司网站设计公司推广方式有哪些
  • 运城网站开发广告网站有哪些
  • 简单详细搭建网站教程视频域名免费注册0元注册
  • 什么网站可以做汽车国际贸易seo分析工具
  • 哪个网站做汽车保养比较好收录入口在线提交
  • 上线了做网站要钱神童预言新冠2023结束
  • 关于网站建设西安核心关键词排名
  • wordpress仿QQ看点百度seo关键词优化工具
  • 网站的要求谷歌浏览器下载手机版最新版
  • 做网站首页与分页什么样子百度快速优化软件
  • 网站查外链网站搜索关键词优化
  • 网站建设平台中央直播地推接单平台
  • 网站域名证书查询专业做灰色关键词排名
  • 专业网站建设 公司哪家好东莞最新消息 今天
  • 网站兼容浏览器服务2022拉新推广赚钱的app
  • 前端开发有前途吗抖音搜索seo软件
  • 横向网站seo优化裤子关键词