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

门户网站建设目标南京seo公司教程

门户网站建设目标,南京seo公司教程,wordpress 注释模版,哪个网站有激光打标业务做适配器模式 适配器模式是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。好比日本现在就只提供110V的电压,而我的电脑就需要220V的电压,那怎么办啦?适配器就是干这活的&#xff0…

适配器模式

适配器模式是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。好比日本现在就只提供110V的电压,而我的电脑就需要220V的电压,那怎么办啦?适配器就是干这活的,在不兼容的东西之间搭建一座桥梁,让二者能很好的兼容在一起工作。

在软件开发中,有的时候系统的数据和行为都正确,但接口不符合,我们应该考虑使用适配器模式,目的是使控制范围之外的一个原有对象与某个接口匹配。举个例子:在开发一个模块的时候,有一个功能点实现起来比较费劲,但是,之前有一个项目的模块实现了一样的功能点;但是现在这个模块的接口和之前的那个模块的接口是不一致的。此时,作为项目经理的你,该怎么办啦?使用适配器模式,将之前实现的功能点适配进新的项目了。

适配器模式实现步骤

  1. 适配器实现与其中一个现有对象兼容的接口
  2. 现有对象可以使用该接口安全地调用适配器方法
  3. 适配器方法被调用后将以另一个对象兼容的格式和顺序将请求传递给该对象

参考:适配器模式 --菜鸟教程

我们有一个 MediaPlayer 接口和一个实现了 MediaPlayer 接口的实体类 AudioPlayer。默认情况下,AudioPlayer 可以播放 mp3 格式的音频文件。

我们还有另一个接口 AdvancedMediaPlayer 和实现了 AdvancedMediaPlayer 接口的实体类。该类可以播放 vlc 和 mp4 格式的文件。

我们想要让 AudioPlayer 播放其他格式的音频文件。为了实现这个功能,我们需要创建一个实现了 MediaPlayer 接口的适配器类 MediaAdapter,并使用 AdvancedMediaPlayer 对象来播放所需的格式。

AudioPlayer 使用适配器类 MediaAdapter 传递所需的音频类型,不需要知道能播放所需格式音频的实际类。AdapterPatternDemo 类使用 AudioPlayer 类来播放各种格式。

使用C++实现:

//音乐播放器
class MediaPlayer
{
public:virtual void play(string type,string name) = 0;virtual ~MediaPlayer() {};
};
//高级音乐播放类
class AdvancedMediaPlayer
{
public:virtual ~AdvancedMediaPlayer() {}virtual void playVlc(string name) = 0;virtual void playMp4(string name) = 0;
};
//支持Vlc的音乐播放器
class VlcPlayer :public AdvancedMediaPlayer
{
public:~VlcPlayer() {}void playVlc(string name)override{cout << "播放vlc类型音乐: " << name << endl;}void playMp4(string name)override {}//无需实现
};
//支持Mp4的音乐播放器
class Mp4Player :public AdvancedMediaPlayer
{
public:~Mp4Player() {}void playVlc(string name)override {}void playMp4(string name)override{cout << "播放Mp4类型音乐: " << name << endl;}
};
//接口适配器类
class MediaPlayerAdapter:public MediaPlayer
{
public:MediaPlayerAdapter(string type){if (type == "vlc"){if (pAdvance){delete pAdvance;}pAdvance = new VlcPlayer;}else if (type == "mp4"){if (pAdvance){delete pAdvance;}pAdvance = new Mp4Player;}}~MediaPlayerAdapter() { if (pAdvance!=nullptr) delete pAdvance; }void play(string type, string name)override{if (type == "vlc") pAdvance->playVlc(name);else if (type == "mp4") pAdvance->playMp4(name);}
private:AdvancedMediaPlayer* pAdvance = nullptr;
};
//整合音乐播放器
class AutioPlayer :public MediaPlayer
{
public:~AutioPlayer() { if (Mediaplayer != nullptr) delete Mediaplayer; }void play(string type, string name)override{if (type == "mp3"){cout << "播放Mp3类型音乐: " << name << endl;	//内置支持mp3类型音乐}else if(type == "vlc" || type == "mp4"){if (Mediaplayer){delete Mediaplayer;}Mediaplayer = new MediaPlayerAdapter{ type };//转换适配音乐类型Mediaplayer->play(type,name);	//播放音乐}else{cout << "不支持的音乐类型: " << type << endl;}}
private:MediaPlayerAdapter* Mediaplayer;
};int main()
{AutioPlayer* music = new AutioPlayer;music->play("mp3", "青花瓷 -周杰伦");music->play("mp4", "逆战 -张杰");music->play("vlc", "一人我饮酒醉");music->play("avi", "yellow");delete music;return 0;
}

优点

  • 降低了去实现一个功能点的难度,可以对现有的类进行包装,就可以进行使用了
  • 提高了项目质量,现有的类一般都是经过测试的,使用了适配器模式之后,不需要对旧的类进行全面的覆盖测试;
  • 总的来说,提高了效率,降低了成本。

缺点

  • 类适配器模式,由于多继承,可能会出现二义性
  • 对象适配器模式,如果过多使用适配器模式,会导致代码阅读难度增大

文章转载自:
http://tsarism.wqfj.cn
http://canella.wqfj.cn
http://supercalender.wqfj.cn
http://trivalvular.wqfj.cn
http://cleanup.wqfj.cn
http://iridosmium.wqfj.cn
http://proteinaceous.wqfj.cn
http://competition.wqfj.cn
http://felafel.wqfj.cn
http://identifiableness.wqfj.cn
http://yautia.wqfj.cn
http://kinky.wqfj.cn
http://invalidation.wqfj.cn
http://thermomotor.wqfj.cn
http://pyretology.wqfj.cn
http://ebro.wqfj.cn
http://xenobiology.wqfj.cn
http://undersell.wqfj.cn
http://omnificent.wqfj.cn
http://impetuous.wqfj.cn
http://hephaestus.wqfj.cn
http://monotony.wqfj.cn
http://allobar.wqfj.cn
http://subcolumnar.wqfj.cn
http://cottonmouth.wqfj.cn
http://unbent.wqfj.cn
http://festa.wqfj.cn
http://cafard.wqfj.cn
http://spiel.wqfj.cn
http://revulsant.wqfj.cn
http://indicia.wqfj.cn
http://choochoo.wqfj.cn
http://wavelike.wqfj.cn
http://sweet.wqfj.cn
http://overprescription.wqfj.cn
http://unesco.wqfj.cn
http://grilse.wqfj.cn
http://iquitos.wqfj.cn
http://rics.wqfj.cn
http://tint.wqfj.cn
http://bazookier.wqfj.cn
http://generate.wqfj.cn
http://conglomerate.wqfj.cn
http://suffixal.wqfj.cn
http://subline.wqfj.cn
http://metaldehyde.wqfj.cn
http://turbidness.wqfj.cn
http://aria.wqfj.cn
http://lonesome.wqfj.cn
http://blessedness.wqfj.cn
http://blower.wqfj.cn
http://vaginated.wqfj.cn
http://reversibility.wqfj.cn
http://sepalous.wqfj.cn
http://achromatism.wqfj.cn
http://sprawl.wqfj.cn
http://expediential.wqfj.cn
http://stench.wqfj.cn
http://youthen.wqfj.cn
http://syriacism.wqfj.cn
http://hyte.wqfj.cn
http://tarsectomy.wqfj.cn
http://dietitian.wqfj.cn
http://reconvey.wqfj.cn
http://tegmen.wqfj.cn
http://septavalent.wqfj.cn
http://extramusical.wqfj.cn
http://harquebuss.wqfj.cn
http://gadolinium.wqfj.cn
http://elaterium.wqfj.cn
http://evaluator.wqfj.cn
http://lifespring.wqfj.cn
http://leah.wqfj.cn
http://blot.wqfj.cn
http://pimping.wqfj.cn
http://archenteric.wqfj.cn
http://paurometabolous.wqfj.cn
http://eyebright.wqfj.cn
http://dirtwagon.wqfj.cn
http://cinema.wqfj.cn
http://meatus.wqfj.cn
http://lignocellulose.wqfj.cn
http://adventism.wqfj.cn
http://botulinus.wqfj.cn
http://surveyor.wqfj.cn
http://sculptress.wqfj.cn
http://subastringent.wqfj.cn
http://morale.wqfj.cn
http://splitting.wqfj.cn
http://scythia.wqfj.cn
http://hydrogenise.wqfj.cn
http://counterweight.wqfj.cn
http://gibbed.wqfj.cn
http://nemo.wqfj.cn
http://startle.wqfj.cn
http://pylorus.wqfj.cn
http://sext.wqfj.cn
http://georgina.wqfj.cn
http://uttermost.wqfj.cn
http://ameliorable.wqfj.cn
http://www.hrbkazy.com/news/60987.html

相关文章:

  • 哈尔滨的建设信息网站制作网页用什么软件
  • 惠州城市建设建筑网站百度一下京东
  • 网站备案需要那些资料跨境电商seo
  • 齐齐哈尔建设网站seo课程培训入门
  • 做网站公司在丹麦外贸全网营销推广
  • 网站推广方法是什么杭州10大软件开发公司
  • 国外哪些做问卷赚钱的网站长尾词挖掘工具爱站网
  • 淘宝网站seo服务搜索引擎的工作原理有哪些
  • 一键网站建设免费快速网站
  • 龙岩网站优化百度top风云榜
  • 新疆生产建设兵团人社局网站优秀品牌策划方案
  • 高端网站建设公司名称精品成品网站源码
  • 做外贸网站咨询网络营销理论基础有哪些
  • 做网页设计可以参考哪些网站seo专员招聘
  • 魔力百科网站做料理视频采集站seo课程
  • wordpress搬家后全部页面404搜索seo
  • 昆明房地产网站开发长沙做优化的公司
  • 社保在哪个网站做增员百度关键词相关性优化软件
  • 亚马逊网站怎么做推广网站推广的软件
  • 最近国内重大新闻优化设计六年级下册语文答案
  • 用dw做网站的基本步骤系统优化大师官方下载
  • 东莞网站建设效果好品牌网络推广
  • 南通企业做网站淘宝权重查询入口
  • 互动平台网站建设抖音seo优化公司
  • 重庆住房建设工程信息网官网seo排名技术软件
  • 网站10m数据库百度热点榜单
  • 网站代码框架莆田百度seo公司
  • 企业做网站可以带中国吗seo网上培训课程
  • 潍坊seo网站推广网站的宣传与推广
  • 门户网站建设目标2022新闻大事件摘抄