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

网站 常见推广js代码放wordpress哪里

网站 常见推广,js代码放wordpress哪里,长春网站建设解决方案,如何编写网站建设设计模式学习#xff08;二#xff09;工厂模式——抽象工厂模式注册表 前言使用简单工厂改进使用注册表改进参考文章 前言 在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点#xff1a;①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论 使用… 设计模式学习二工厂模式——抽象工厂模式注册表 前言使用简单工厂改进使用注册表改进参考文章 前言 在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论 使用简单工厂改进 对于缺点①我们可以使用简单工厂的思路来改进抽象工厂的初版代码。对于上一篇文章中的例子我们去除CameraFactory、BaslerCameraFactory和SickCameraFactory取而代之的是SimpleFactory类。 类图如下 代码如下 //工厂类 class SimpleFactory { public:BaslerCamera* CreateBaslerCamera(){if (Linux os_name_){return new LinuxBaslerCamera();}else if (Windows os_name_){return new WindowsBaslerCamera();}else{return nullptr;}}SickCamera* CreateSickCamera(){if (Linux os_name_){return new LinuxSickCamera();}else if (Windows os_name_){return new WindowsSickCamera();}else{return nullptr;}} public:std::string os_name_ Linux;};//客户端 int main() {SimpleFactory* camera_factory new SimpleFactory();BaslerCamera* basler_camera camera_factory-CreateBaslerCamera();basler_camera-OpenCamera();SickCamera* sick_camera camera_factory-CreateSickCamera();sick_camera-OpenCamera();return 0; }注意上述方法虽然改进了缺点①但是缺点②仍存在。 使用注册表改进 对于缺点②其本质是增加新产品时对工厂类带来的修改违反了开闭原则。对于这种情况我们可以参考《设计模式学习二工厂模式——工厂方法模式注册表》中提到的注册表来去除switch或if这种分支判断解除分支判断带来的耦合。 对于具体产品我们可以这样将它注册 class LinuxBaslerCamera : public BaslerCamera { public:~LinuxBaslerCamera() override default;bool OpenCamera() override{return true;} };ReflectRegister(LinuxBasler, LinuxBaslerCamera);然后工厂类的代码可以简化为 class SimpleFactory { public:BaslerCamera* CreateBaslerCamera(){std::string name os_name_ Basler;return Object::CreateObjectBaslerCamera(name);}SickCamera* CreateSickCamera(){std::string name os_name_ Sick;return Object::CreateObjectSickCamera(name);} public:std::string os_name_ Linux; };这样在产品族增加时比如增加一个HarmonyOS我们只需要在它下面的产品类对应的文件中使用ReflectRegister注册然后改变os_name_即可当然os_name_也可以在运行时从配置文件中加载这样更好。 而对于现有的产品族内增加新产品比如增加一个Huaray相机工厂类中还是要增加一个CreateHuarayCamera函数。 参考文章 1.《大话设计模式》
http://www.w-s-a.com/news/42035/

相关文章:

  • 靖江网站开发徐州住房和城乡建设局网站
  • 南宁网站建设公司如何为老板打造网站赚钱的wordpress optimizer
  • 做微商好还是开网站好网站网络推广
  • 网站建设岗位所需技能泊头网站优化
  • 企业网站建设是什么网络营销岗位介绍
  • 网站做cdn怎么弄昆明网站seo报价
  • 拖拽网站如何建立微网站
  • 网站网站做代理微信群卖房卡南宁建站模板大全
  • 网络公司怎么优化网站百度快速排名技术培训教程
  • 建e室内设计网 周婷站长工具seo综合查询源码
  • 塔式服务器主机建网站定制美瞳网站建设
  • 网站是先解析后备案吗永久免费网站模板
  • wordpress站点演示php根据ip 跳转网站
  • 东莞市凤岗建设局网站网站开发有哪些职位
  • 企业网站手机版模板免费下载辣条网站建设书
  • 南昌网站建设维护vc 做网站源码
  • 网站动态logo怎么做织梦移动端网站怎么做
  • 三亚城乡建设局网站app下载安装官方网站
  • 公司被其它人拿来做网站郑州哪家做网站最好
  • 山东省建设厅官方网站抖音代运营业务介绍
  • 网站制作 牛商网wordpress商城 微信支付
  • 平面设计培训网站建文帝网站建设
  • python网站建设佛山乐从网站建设
  • 网站 免费 托管运营app软件大全
  • 爱网站找不到了网站设计制作要交印花税
  • 分销平台是什么意思网站如何从行为数据进行优化
  • 做网站公司职务做民俗酒店到哪些网站推荐
  • 从0到建网站wordpress导航主题模板下载地址
  • 以3d全景做的网站统计网站的代码
  • 北辰网站建设WordPress换主题文件夹