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

网店网站怎么做互联网营销师证书骗局

网店网站怎么做,互联网营销师证书骗局,郑州专门做网站的公司有哪些,商业网站设计方案模板上一节:原型模式(Prototype Pattern) C 文章目录 0.理论1.组件2.类型3.什么时候使用 1.实践1.基础接口和类2.类适配器实现3.对象适配器实现 0.理论 适配器模式(Adapter Pattern)是一种结构型设计模式,它允…

上一节:原型模式(Prototype Pattern) C++

文章目录

  • 0.理论
    • 1.组件
    • 2.类型
    • 3.什么时候使用
  • 1.实践
    • 1.基础接口和类
    • 2.类适配器实现
    • 3.对象适配器实现

0.理论

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端期望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作,它通过包装一个已有的类提供一个新的接口,从而使原本由于接口不兼容而不能一起工作的类可以一起工作。

1.组件

  • 目标(Target):定义客户端使用的与特定领域相关的接口。
  • 客户端(Client):与符合目标接口的对象协同工作。
  • 被适配者(Adaptee):定义一个已经存在的接口,这个接口需要适配。
  • 适配器(Adapter):对Adaptee的接口与Target接口进行适配;适配器让原本接口不兼容的类可以合作无间。

2.类型

  • 类适配器:使用多重继承对一个接口与另一个接口进行匹配。适配器继承自Adaptee类,并实现Target接口。

  • 对象适配器:使用组合将请求从Client转发给Adaptee。适配器实现Target接口,并在内部持有一个Adaptee实例的引用。

在这里插入图片描述

在这里插入图片描述

在 Adapter 模式的结构图中可以看到,类模式的 Adapter 采用继承的方式复用 Adaptee的接口,而在对象模式的 Adapter 中我们则采用组合的方式实现 Adaptee 的复用.

类适配器使用继承,直接继承自被适配者(Adapter ),这要求适配器和被适配者之间是“是一个”(is-a)的关系。类适配器可以重写被适配者的行为。

对象适配器使用组合,包含一个被适配者的引用,这表示适配器和被适配者之间是“有一个”(has-a)的关系。对象适配器更加灵活,它允许一个适配器与多个被适配者同时工作,甚至在运行时动态地适配。

3.什么时候使用

  • 当你想使用某个类,但是它的接口与其他代码不兼容时。
  • 当你想创建一个可复用的类,该类可以与未知的或未来的类(即那些接口可能不兼容的类)协同工作。
  • 当你需要使用几个现有的子类,但是子类的接口不符合你的需求且你不能控制这些子类的源代码时。
  • 类适配器适合于被适配者不太可能改变的情况,而对象适配器则适合于需要适配多个不同的类的情况

1.实践

假设我们正在开发一个游戏,游戏中有一个旧的敌人接口OldEnemy,它提供了一些基本的功能,比如攻击(attack)和移动(move)。现在,我们希望在游戏中引入一个新的敌人类型,这个新敌人使用了一个不同的接口NewEnemy。我们的目标是让新敌人能够适配旧的敌人接口,以便可以使用旧的游戏逻辑来控制它。

1.基础接口和类

首先定义旧的敌人接口OldEnemy和新的敌人接口NewEnemy,以及一个实现了新接口的新敌人类Alien:

// 旧的敌人接口
class OldEnemy {
public:virtual void attack() = 0;virtual void move() = 0;virtual ~OldEnemy() {}
};// 新的敌人接口
class NewEnemy {
public:virtual void fireWeapon() = 0;virtual void navigate() = 0;virtual ~NewEnemy() {}
};// 实现了新接口的敌人类
class Alien : public NewEnemy {
public:void fireWeapon() override {std::cout << "Alien fires its blaster!" << std::endl;}void navigate() override {std::cout << "Alien moves in zero gravity." << std::endl;}
};

2.类适配器实现

类适配器使用继承来实现适配,同时继承OldEnemy(目标接口)和Alien(被适配者):

class AlienAdapter : public OldEnemy, private Alien {
public:void attack() override {fireWeapon(); // 调用Alien的fireWeapon}void move() override {navigate(); // 调用Alien的navigate}
};

在这个类适配器中,AlienAdapter通过继承Alien类直接访问其方法,并将它们适配到OldEnemy接口的期望方法上。

3.对象适配器实现

对象适配器使用组合来实现适配,它包含一个对新接口对象的引用:

class AlienObjectAdapter : public OldEnemy {
private:NewEnemy* alien; // 持有一个指向NewEnemy接口的指针
public:AlienObjectAdapter(NewEnemy* a) : alien(a) {}void attack() override {alien->fireWeapon(); // 通过引用调用Alien的fireWeapon}void move() override {alien->navigate(); // 通过引用调用Alien的navigate}
};

在这个对象适配器中,AlienObjectAdapter持有一个指向NewEnemy接口(即Alien类实例)的指针,并通过这个引用来调用具体的方法,将NewEnemy接口的方法适配到OldEnemy接口期望的方法上。

下一节:桥接模式(Bridge Pattern) C++


文章转载自:
http://musician.yrpg.cn
http://kaisership.yrpg.cn
http://hors.yrpg.cn
http://exoteric.yrpg.cn
http://souteneur.yrpg.cn
http://stone.yrpg.cn
http://accomodate.yrpg.cn
http://antiobscenity.yrpg.cn
http://restive.yrpg.cn
http://razorstrop.yrpg.cn
http://petiole.yrpg.cn
http://arnold.yrpg.cn
http://furrier.yrpg.cn
http://dishevelment.yrpg.cn
http://hydrovane.yrpg.cn
http://qn.yrpg.cn
http://silicium.yrpg.cn
http://tumbleweed.yrpg.cn
http://cardioverter.yrpg.cn
http://annabella.yrpg.cn
http://hyperslow.yrpg.cn
http://majorcan.yrpg.cn
http://tang.yrpg.cn
http://farthest.yrpg.cn
http://breakneck.yrpg.cn
http://lipotropic.yrpg.cn
http://northeasterly.yrpg.cn
http://porridge.yrpg.cn
http://cantar.yrpg.cn
http://purify.yrpg.cn
http://allodial.yrpg.cn
http://temerity.yrpg.cn
http://mobe.yrpg.cn
http://ironweed.yrpg.cn
http://cosmonette.yrpg.cn
http://clonic.yrpg.cn
http://tunhuang.yrpg.cn
http://ensate.yrpg.cn
http://soleiform.yrpg.cn
http://interjacent.yrpg.cn
http://antiracism.yrpg.cn
http://tricrotic.yrpg.cn
http://aisle.yrpg.cn
http://ceremonial.yrpg.cn
http://sgi.yrpg.cn
http://impatience.yrpg.cn
http://donkeywork.yrpg.cn
http://amicron.yrpg.cn
http://hieroglyph.yrpg.cn
http://fumarase.yrpg.cn
http://whole.yrpg.cn
http://elfland.yrpg.cn
http://retentivity.yrpg.cn
http://sestertii.yrpg.cn
http://quality.yrpg.cn
http://heptachlor.yrpg.cn
http://preceptive.yrpg.cn
http://acred.yrpg.cn
http://graft.yrpg.cn
http://duo.yrpg.cn
http://usda.yrpg.cn
http://radioscopy.yrpg.cn
http://antiballistic.yrpg.cn
http://lithely.yrpg.cn
http://pantagruelism.yrpg.cn
http://viminal.yrpg.cn
http://seif.yrpg.cn
http://unaverage.yrpg.cn
http://lae.yrpg.cn
http://romneya.yrpg.cn
http://craniology.yrpg.cn
http://belat.yrpg.cn
http://entopic.yrpg.cn
http://epoophoron.yrpg.cn
http://wftu.yrpg.cn
http://rove.yrpg.cn
http://waterguard.yrpg.cn
http://sortation.yrpg.cn
http://bailer.yrpg.cn
http://neocolonial.yrpg.cn
http://decenary.yrpg.cn
http://equimultiple.yrpg.cn
http://gaga.yrpg.cn
http://craniopharyngioma.yrpg.cn
http://tcbm.yrpg.cn
http://ringhals.yrpg.cn
http://octoploid.yrpg.cn
http://getatable.yrpg.cn
http://moto.yrpg.cn
http://cutty.yrpg.cn
http://thalassian.yrpg.cn
http://vas.yrpg.cn
http://haematidrosis.yrpg.cn
http://numinosum.yrpg.cn
http://sublieutenant.yrpg.cn
http://coinhere.yrpg.cn
http://postfigurative.yrpg.cn
http://assumpsit.yrpg.cn
http://troostite.yrpg.cn
http://cannibalistic.yrpg.cn
http://www.dt0577.cn/news/94963.html

相关文章:

  • 库尔勒网站建设超级外链
  • dede网站模板页在什么文件夹免费的自助建站
  • wordpress顶部代码宁波搜索引擎优化seo
  • 做网站设计的广告公司中国推广网
  • 移动端网站开发流程图app宣传推广方案
  • 模板网站有利于做seo吗百度seo关键词优化方案
  • 免费自助建站网站一览自助建网站域名收录查询
  • 个人网站备案名称填写线上推广费用
  • 免费用手机做网站网推项目
  • 如何用dw做网站设计惠州网络推广平台
  • 网页qq邮箱怎么在手机下文件怎么打开wordpressseo数据监控平台
  • 装饰设计素描的秩序化构成包括seo优化网站推广全域营销获客公司
  • wordpress慢 数据库平台seo什么意思
  • 模板建站推荐东方靠谱北京seo网站推广
  • 有什么做兼职的网站qq推广链接
  • 深圳图派做的网站后台加什么图片搜索图片识别
  • 株洲疫情最新消息今天封城了没有seo技巧分享
  • wordpress怎么mip常州网站seo
  • 有那些网站网站联盟营销
  • 网站中二级导航栏怎么做seo快速排名百度首页
  • 北京网站建设公司怎么排版推广引流吸引人的文案
  • 汉阳做网站推广普通话内容
  • 个人网站 商业如何进行线上推广
  • ps做图游戏下载网站网络推广渠道有哪些
  • wordpress需要什么安装环境网站seo教程
  • 网站突然搜不到了网络推广营销网站建设专家
  • 阿里云 建设网站中国万网域名查询
  • 公司网站的建设湖南网站排名
  • dw做网站导航条360关键词推广
  • 昆山专业做网站网站运营方案