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

哈尔滨网站制作方案互联网保险的风险

哈尔滨网站制作方案,互联网保险的风险,变装小说wordpress,设定wordpress账号密码解释说明#xff1a;提供一个创建一系列相关或相互依赖对象的接口#xff0c;而无需指定他们具体的类。 简言之#xff0c;一个工厂可以提供创建多种相关产品的接口#xff0c;而无需像工厂方法一样#xff0c;为每一个产品都提供一个具体工厂 抽象工厂#xff08;Abstra… 解释说明提供一个创建一系列相关或相互依赖对象的接口而无需指定他们具体的类。 简言之一个工厂可以提供创建多种相关产品的接口而无需像工厂方法一样为每一个产品都提供一个具体工厂 抽象工厂AbstractFactory提供了创建抽象的接口它包含了多个创建产品的方法可以创建多个不同等级的产品 具体工厂ConcreteFactory主要是实现抽象工厂中的多个抽象方法完成具体产品的创建 抽象产品Product定义产品的规范描述了产品的主要特性和功能抽象工厂模式有多个抽象产品 具体产品ConcreteProduct实现了抽象产品角色所定义的接口由具体工厂来创建它同具体工厂之间是一对一的关系 优点 封装了产品的创建使得不需要知道具体是哪种产品只需要知道是哪个工厂即可。 可以支持不同类型的产品使得模式灵活性更强。 可以非常方便的使用一族中的不同类型的产品。 缺点 结构过于臃肿如果产品类型较多或产品族较多会非常难于管理。 每次如果添加一组产品那么所有的工厂类都必须添加一个方法这样违背了开放-封闭原则。所以一般适用于产品组合产品族变化不大的情况。 适用场景 在不必指定产品的具体的情况下创建多个产品族中的产品对象。 考虑这样一个场景如下图 Jungle想要进行户外运动它可以选择打篮球和踢足球。但这次Jungle不想弄脏原本穿的T恤所以Jungle还需要穿球衣打篮球就穿篮球衣踢足球就穿足球衣。篮球保管室可以提供篮球和篮球衣足球保管室可以提供足球和足球衣。Jungle只要根据心情去某个保管室就可以换上球衣、拿上球然后就可以愉快地玩耍了 对应的UML实例图如下图 #pragma once #include string using namespace std; // 汽车接口 class ICar { public:virtual string Name() 0; // 汽车名称 }; /********** 汽车 **********/ // 奔驰 class BenzCar : public ICar { public:string Name() {return Benz Car;} }; // 宝马 class BmwCar : public ICar { public:string Name() {return Bmw Car;} }; // 奥迪 class AudiCar : public ICar { public:std::string Name() {return Audi Car;} }; // 自行车接口 class IBike { public:virtual string Name() 0; // 自行车名称 }; /********** 自行车 **********/ // 奔驰 class BenzBike : public IBike { public:string Name() {return Benz Bike;} }; // 宝马 class BmwBike : public IBike { public:string Name() {return Bmw Bike;} }; // 奥迪 class AudiBike : public IBike { public:string Name() {return Audi Bike;} };#include product.h // 抽象工厂 class AFactory { public:enum FACTORY_TYPE {BENZ_FACTORY, // 奔驰工厂BMW_FACTORY, // 宝马工厂AUDI_FACTORY // 奥迪工厂};virtual ICar* CreateCar() 0; // 生产汽车virtual IBike* CreateBike() 0; // 生产自行车static AFactory* CreateFactory(FACTORY_TYPE factory); // 创建工厂 };#include factory.h #include product.h // 奔驰工厂 class BenzFactory : public AFactory { public:ICar* CreateCar() {return new BenzCar();}IBike* CreateBike() {return new BenzBike();} }; // 宝马工厂 class BmwFactory : public AFactory { public:ICar* CreateCar() {return new BmwCar();}IBike* CreateBike() {return new BmwBike();} }; // 奥迪工厂 class AudiFactory : public AFactory { public:ICar* CreateCar() {return new AudiCar();}IBike* CreateBike() {return new AudiBike();} }; // 创建工厂 AFactory* AFactory::CreateFactory(FACTORY_TYPE factory) {AFactory* pFactory NULL;switch (factory) {case FACTORY_TYPE::BENZ_FACTORY: // 奔驰工厂pFactory new BenzFactory();break;case FACTORY_TYPE::BMW_FACTORY: // 宝马工厂pFactory new BmwFactory();break;case FACTORY_TYPE::AUDI_FACTORY: // 奥迪工厂pFactory new AudiFactory();break;default:break;}return pFactory; }#include factory.h #include product.h #include iostream using namespace std; #ifndef SAFE_DELETE #define SAFE_DELETE(p) { if(p){delete(p); (p)NULL;} } #endif int main() {// 奔驰AFactory* pFactory AFactory::CreateFactory(AFactory::FACTORY_TYPE::BENZ_FACTORY);ICar* pCar pFactory-CreateCar();IBike* pBike pFactory-CreateBike();cout Benz factory - Car: pCar-Name() endl;cout Benz factory - Bike: pBike-Name() endl;SAFE_DELETE(pCar);SAFE_DELETE(pBike);SAFE_DELETE(pFactory);// 宝马pFactory AFactory::CreateFactory(AFactory::FACTORY_TYPE::BMW_FACTORY);pCar pFactory-CreateCar();pBike pFactory-CreateBike();cout Bmw factory - Car: pCar-Name() endl;cout Bmw factory - Bike: pBike-Name() endl;SAFE_DELETE(pCar);SAFE_DELETE(pBike);SAFE_DELETE(pFactory);// 奥迪pFactory AFactory::CreateFactory(AFactory::FACTORY_TYPE::AUDI_FACTORY);pCar pFactory-CreateCar();pBike pFactory-CreateBike();cout Audi factory - Car: pCar-Name() endl;cout Audi factory - Bike: pBike-Name() endl;SAFE_DELETE(pCar);SAFE_DELETE(pBike);SAFE_DELETE(pFactory);getchar();return 0; }
http://www.hkea.cn/news/14523908/

相关文章:

  • 广州达美网站建设汕头潮阳网站建设
  • 网站开发需求用什么软件深汕特别合作区事务员待遇
  • 深圳社区网站开发公司网络私人定制网站
  • 网页设计自学视频网站做网站1万多
  • 汽车行业网站建设比较营销型网站建设原则
  • 网站建设费用应该入什么科目wordpress社区模版
  • it行业网站模板.jsp网站开发技术
  • 大良企业网站建设网站空间大小怎么查看
  • 小规模网站开发税率wordpress编辑用户头像
  • 网站制作加盟潇湘书院网站建设的目标
  • 网站的栏目建设在哪里苏州婚庆公司网站建设案例
  • 瑞昌网站建设二手车交易网站怎么做
  • 小型企业类网站开发公司wordpress 商用
  • 专门做外包的网站企业网站主页设计图片
  • 外贸自己建网站电子商务网站建设的案例分析题
  • 湖南网站建设公司 搜搜磐石网络网站维护和网页维护区别
  • 东莞网站设计价格怎么邀约客户做网站
  • 金桥网站建设百度app下载链接
  • 彩妆做推广的网站专门做美食的网站
  • 域名备案 填写网站信息网站建设后期需要做什么
  • 做网站中app客户端wordpress手机域名
  • 如何做网站详细步骤图网站开发电销常遇到问题
  • 成都建设门户网站网站首页成品
  • 个人智慧团建网站自建网站营销是什么
  • 表白网站邯郸房产网
  • 广州建站费用广告设计与制作合同范本
  • 母婴门户网站模板北京公司注册核名详细流程
  • 网站购买后如何做有没有做翻译赚钱的网站
  • 电商网站什么要求高淮北建设工程质量安全站网站
  • 网站关键词怎么修改宿迁网站建设排名