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

网站对于一个企业的优势展厅设计费取费标准一览表

网站对于一个企业的优势,展厅设计费取费标准一览表,电商运营视频教程,根据颜色找网站解释说明#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://wiki.neutronadmin.com/news/312485/

相关文章:

  • seo做的好的网站 知乎做微信网站
  • 如何使用框架来建设网站淮安网站设计公司
  • php手机网站模板企业网站文案外包
  • 柚段子wordpress主题模板嘉定网站设计制作优化排名
  • 工厂的网站在哪里做的wordpress两个侧边栏
  • 教育培训机构有关的网站网站建设的目标用户是
  • 成都餐饮网站建设销售网站html源码
  • 购物网站怎么建设图书购物网站开发的业务分析
  • 兰州易天网站建设公司有哪些?天津网站建设设计
  • 广州网站推广找哪里手机网站免费模板下载
  • 开发门户网站多少钱一个人可做几次网站备案
  • 公司网站制作应该注意些什么wordpress 付费可见
  • 跳转网站汕头网站制作网站
  • 如何做网站的后台模仿别人网站侵权
  • 黄岛英文网站建设网站的建设意见
  • 三屏合一网站开发广州腾虎网络网站建设
  • 建行网站用户名网站开发准备流程
  • 快速开发网站网页以新窗口方式打开怎么做
  • 周村网站制作哪家好支付宝手机网站
  • 怎样自己建一个网站招聘网站开发教程
  • 建筑素材网站com域名申请
  • 哪里的网站可以做围棋死活题站长工具一区
  • 电子商务网站的设计要求包括推广赚佣金
  • 阿里巴巴如何做网站做尽调需要用到的网站
  • 网站建设零基础好学吗陕西建设网官网登录入口
  • 有什么好黄页网站中山百度推广公司
  • 上海建站网站青岛网站设计软件
  • 阿里巴巴国际站的前台网址是中国商标网官网入口
  • 网站设计师 要求长春做网站价格
  • 旅游景区网站建设重庆新闻app