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

申请建设网站经费申请百度收录较好的网站

申请建设网站经费申请,百度收录较好的网站,设计公司 网站,网站seo怎么做知乎1.概念 适配器模式是一种结构型的软件设计模式#xff0c;也称包装模式#xff0c;即将相对复杂的功能#xff08;可能用到多个类#xff09;封装起来#xff0c;提供一个使用者想要的接口#xff0c;使用者只需要调用接口#xff0c;不需要知道接口里封装的内容是如何实…1.概念 适配器模式是一种结构型的软件设计模式也称包装模式即将相对复杂的功能可能用到多个类封装起来提供一个使用者想要的接口使用者只需要调用接口不需要知道接口里封装的内容是如何实现的。比如在面对一些第三方库或者SDK开发时它们的接口往往与我们自己想要的接口不一致此时适配器模式可以很好地扮演一个接口转换器的角色将别人的接口与我们的接口对应上。 2.优缺点 优点 良好封装性。接口内的内容对使用者而言是透明的即看不见这确保了内部功能具备较好的封装性不易被改动。解耦。不匹配的两方在适配器的作用下可以做到解耦不需要修改任何一方原有代码逻辑。良好复用性。适配的两方不需要做任何修改业务的实现可以通过适配器来完成不同的业务可以使用不同的适配器。良好扩展性。若要增加业务场景只需要增加适配器类来满足业务即可。 缺点 不利于维护。因为业务的实现基于适配器完成适配器中代码的复杂程度会越来越高不熟悉业务或者底层逻辑的人难以短时间内接手维护。系统结构易混乱。当业务量快速增加时适配器类的数量也会快速增加没有良好的系统架构布局最终会使得整个系统臃肿且危险。       3.两种适配器类型 类适配器模式适配器类通过继承适配者类多重继承达到适配目的部分语言可能不支持多重继承如C#。对象适配器模式适配器类中存放适配者类的实例对象调用它来达到适配目的该模式较常用。 4.示例代码 4.1 类适配器模式 #pragma once #include iostreamusing namespace std;// 巴斯勒相机类适配者 class BaslerCamera { public:// 打开相机void openBaslerCamera() {cout 巴斯勒相机打开相机。 endl;}// 关闭相机void closeBaslerCamera() {cout 巴斯勒相机关闭相机。 endl;}// 打开曝光设置void openExposureSettings() {cout 巴斯勒相机打开曝光设置。 endl;}// 更改相机帧率void changeCameraFrame() {cout 巴斯勒相机更改相机帧率。 endl;} };// 相机接口类 class Camera { public:// 构造函数Camera() {};// 析构函数virtual ~Camera() {};// 打开相机virtual void openCamera() 0;// 关闭相机virtual void closeCamera() 0;// 配置属性virtual void setConfig() 0; };// 相机适配器类 class CameraAdapter :public Camera, public BaslerCamera { public:// 打开相机virtual void openCamera() {openBaslerCamera();}// 关闭相机virtual void closeCamera() {closeBaslerCamera();}// 配置属性virtual void setConfig() {// 打开曝光设置openExposureSettings();// 更改相机帧率changeCameraFrame();} };int main() {Camera* m_camera new CameraAdapter();// 打开相机m_camera-openCamera();// 配置相机m_camera-setConfig();// 关闭相机m_camera-closeCamera();delete m_camera;return 0; } Camera类的接口使我们实际想要的接口但是事实上我们拿到的现有的接口BaslerCamera类提供的接口因此需要CameraAdapter作为类适配器它同时继承自Camera和BaslerCamera两个类。 4.2 对象类适配器模式 #pragma once #include iostream #include BaslerCamera.husing namespace std;// 相机接口类 class Camera { public:// 构造函数Camera() {};// 析构函数virtual ~Camera() {};// 打开相机virtual void openCamera() 0;// 关闭相机virtual void closeCamera() 0;// 配置属性virtual void setConfig() 0; };// 相机适配器类 class CameraAdapter :public Camera { public:// 构造函数CameraAdapter() {m_baslerCamera new BaslerCamera();}// 析构函数virtual ~CameraAdapter() {if (m_baslerCamera ! nullptr) {delete m_baslerCamera;m_baslerCamera nullptr;}}// 打开相机virtual void openCamera() {m_baslerCamera-openBaslerCamera();}// 关闭相机virtual void closeCamera() {m_baslerCamera-closeBaslerCamera();}// 配置属性virtual void setConfig() {// 打开曝光设置m_baslerCamera-openExposureSettings();// 更改相机帧率m_baslerCamera-changeCameraFrame();} private:BaslerCamera *m_baslerCamera; // 适配者类实例 };int main() {Camera* m_camera new CameraAdapter();// 打开相机m_camera-openCamera();// 配置相机m_camera-setConfig();// 关闭相机m_camera-closeCamera();delete m_camera;return 0; } 适配器类做了改变类中增加了一个适配者类的实例对象调用的结果同类适配器模式一致。 引用 设计模式之适配器模式(C)_c适配器模式-CSDN博客
http://www.zqtcl.cn/news/953052/

相关文章:

  • 最新网站建设哪家公司好wordpress 顶部图片
  • 有什么网站可以做一起作业公司简介优秀文案
  • 太仓住房和城乡建设局网站seo网页推广
  • 网络公司 网站源码网页源代码修改了影响别人吗
  • 网站后台是怎样制作的app开发公司排行榜做软件的公司
  • 有专门做网站的公司吗西安分类信息seo公司
  • 重庆璧山网站制作公司哪家专业商城网站建设 优帮云
  • 双语网站建设费用安徽省芜湖建设定额网站
  • 常州市城乡建设局网站wordpress 阿里云cdn
  • 福州制作网站设计哪里比较好百度网址大全官方网站
  • 一般做美食网站的产品需求我想做个网站
  • 成品网站制作公司应用公园是免费的吗
  • 做毕业网站的流程网站建设价格一览表
  • 企业服务网站开发做网站怎样建立服务器
  • 电子商务他们的代表网站360免费wifi官网
  • 网站后端开发软件cc域名做门户网站
  • 保定设计网站超云建站
  • 建筑工程网官网入口优化网站关键词排名软件
  • 企业网站功能怎么设计wordpress文章图片轮播
  • 网站后台登陆验证码不对阳江房产网楼市数据
  • 营销型网站建设遨龙仙居住房和城乡建设规划局网站
  • 中国做视频网站有哪些淘宝做详情页代码网站
  • 网站开发一般多钱在网站设计公司上班好吗
  • 餐饮连锁企业网站建设方案北京软件研发公司
  • 外国网站架构新闻稿
  • 营销网站建设企划案例友情链接怎么添加
  • seo网站搜索优化目前好的推广平台
  • 快速搭建网站页面黄页88网免费发布信息
  • 做网站能赚吗网址大全查询ip地址
  • html5网站正在建设中商城网站系统