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

怎么做网络销售的网站手机做网站哪家好

怎么做网络销售的网站,手机做网站哪家好,如何做自己的加盟网站,软件公司都是帮别人做网站么抽象工厂模式仍然属于创建型模式#xff0c;我们在【简单工厂和工厂方法模式】这篇文章中#xff0c;描述了简单工厂和工厂方法模式#xff0c;并在文末#xff0c;简单介绍了工厂方法模式的局限性。 本文将通过汽车工厂的例子继续来阐述使用抽象工厂模式相比较于工厂方法…抽象工厂模式仍然属于创建型模式我们在【简单工厂和工厂方法模式】这篇文章中描述了简单工厂和工厂方法模式并在文末简单介绍了工厂方法模式的局限性。 本文将通过汽车工厂的例子继续来阐述使用抽象工厂模式相比较于工厂方法模式的优势。 文章目录 工厂方法模式回顾抽象工厂模式代码使用抽象工厂的局限性 工厂方法模式回顾 工厂方法模式通过允许类将实例化延迟到子类中来实现使得增加新的产品类不需要修改现有系统的代码。例如一个汽车制造商需要不同类型的汽车如宝马、奥迪等每种汽车的制造过程可能不同 #include iostream #include string #include memory using namespace std;class Car { public:Car(string name) : name_(name) { }virtual ~Car(){}virtual void show() 0; protected:string name_; };class Bmw : public Car { public:Bmw(string name) : Car(name) { }void show() { cout 获得一辆宝马汽车 name_ endl; } };class Audi : public Car { public:Audi(string name) : Car(name) { }void show() { cout 获得一辆奥迪汽车 name_ endl; } };//工厂方法 class Factory { public:virtual ~Factory() {}virtual Car* createCar(string name) 0; //工厂方法 };//宝马工厂 class BMWFactory : public Factory { public:Car* createCar(string name) { return new Bmw(name); } }; //奥迪工厂 class AudiFactory : public Factory { public:Car* createCar(string name) { return new Audi(name); } };int main () {unique_ptrFactory bmwFactory(new BMWFactory());unique_ptrFactory audiFactory(new AudiFactory());unique_ptrCar p1(bmwFactory-createCar(X6));unique_ptrCar p2(audiFactory-createCar(A8));p1-show();p2-show();return 0; }现在我们考虑这样一种情况如果我们现在要生产的产品是一组有关联的产品簇怎么办难道我们像工厂方法一样又新建立一个工厂来生产该产品吗 比如说我们之前有了奥迪工厂和宝马工厂现在我们需要生产奥迪车灯和宝马车灯难道又建立奥迪车灯工厂吗 这样的话最后我们需要管理的工厂类那也太多了所以很容易想到 我们应该对一组有关联关系的产品簇提供产品对象的统一创建。这就是抽象工厂模式。 抽象工厂模式 我们把之前的工厂方法类写成抽象工厂类并且里面提供创建车灯的方法 并且我们直接在宝马工厂和奥迪工厂去创建车灯 //系列产品一:汽车 class Car { public:Car(string name) : name_(name) { }virtual ~Car(){}virtual void show() 0; protected:string name_; }; class Bmw : public Car { public:Bmw(string name) : Car(name) { }void show() { cout 获得一辆宝马汽车 name_ endl; } }; class Audi : public Car { public:Audi(string name) : Car(name) { }void show() { cout 获得一辆奥迪汽车 name_ endl; } }; //系列产品二车灯 class Light { public:virtual ~Light() {}virtual void show() 0; }; class BmwLight : public Light{ public:void show() { cout BMW light! endl;}; }; class AudiLight : public Light{ public:void show() { cout Audi light! endl;}; };//工厂方法 》 抽象工厂对一组有关联关系的产品簇提供产品对象的统一创建 class AbstractFactory { public:virtual ~AbstractFactory() {}virtual Car* createCar(string name) 0; //工厂方法 创建汽车virtual Light* createLight() 0; // 工厂方法 创建汽车关联的产品--车灯 };//宝马工厂 class BMWFactory : public AbstractFactory { public:Car* createCar(string name) { return new Bmw(name); }Light* createLight() {return new BmwLight();} }; //奥迪工厂 class AudiFactory : public AbstractFactory { public:Car* createCar(string name) { return new Audi(name); }Light* createLight() {return new AudiLight();} };代码使用 int main () {unique_ptrAbstractFactory bmwFactory(new BMWFactory());unique_ptrAbstractFactory audiFactory(new AudiFactory());unique_ptrCar p1(bmwFactory-createCar(X6));unique_ptrCar p2(audiFactory-createCar(A8));unique_ptrLight l1(bmwFactory-createCarLight());unique_ptrLight l2(audiFactory-createCarLight());p1-show();l1-show();p2-show();l2-show();return 0; }抽象工厂的局限性 我们设想这样一种场景比如说我们的宝马工厂需要创建一个新的类对象产品但是奥迪工厂并不需要但是如果宝马工厂想要创建该类 我们也比赛在抽象工厂类中去定义这样一个虚函数尽管奥迪工厂并不需要创建该类对象他还是不得不去重写该虚函数。这样是不符合逻辑的。 总结 简单工厂Simple Factory: 优点把对象的创建封装在一个接口函数里面通过传入不同的标识返回创建的对象用户不用自己负责new对象不用了解对象创建的详细过程 缺点提供创建对象实例的接口函数不闭合不能对修改关闭 工厂方法Factory Method 优点Fatcory基类提供了一个纯虚函数创建产品定义派生类具体产品的工厂负责创建对应的产品可以做到不同的产品在不同的工厂里面创建能够对现有工厂以及产品的修改关闭 缺点实际上很多产品是有管理关系的属于一个产品簇不应该放在不同的工厂里面去创建这样一是不符合实际的产品对象创建逻辑二是工厂类太多了不好维护 抽象工厂Abstract Factory 优点把有关联关系的属于一个产品簇的所有产品创建的接口函数放在一个抽象工厂里面AbstractFactory类派生类具体产品的工厂应该负责创建该产品簇里面所有的产品。
http://www.hkea.cn/news/14479154/

相关文章:

  • 网站空间 jsp网站做产品的审核
  • 沈阳世纪兴网站建设软文案例
  • 制作网站什么制作软件网站建设与管理实验目的
  • 古典风格中药医药企业网站模板源码为何网站打不开
  • 班级网站建设html制作经典企业网站
  • 淘宝客自建网站郑州seo关键词自然排名工具
  • 网站建设.软件开发360免费
  • 图片展示类网站店铺数据分析主要分析什么
  • 顺德营销型网站建设wordpress一键搭建
  • 建设广告网站apache创建WordPress
  • 制作网站专业河南简介网站设计
  • 容城网站建设打开一张图片后点击跳转到网站怎么做
  • 番禺网站(建设信科网络)龙华网站建设方案表
  • 网站内容图片怎么做的邢台网络推广
  • 网站改版建设情况的汇报成功的网络营销案例有哪些
  • 美食网站建设背景介绍做展会怎么引流到自己的网站
  • 太原网站建设平台女孩做网站工作辛苦吗
  • 学校网站用途怎么做网站广告联盟
  • 百度翻译api wordpressseo黑帽2022
  • 网站开发细节重庆建设工程招标信息网站
  • 手机笑话网站源码中企高呈高端网站建设费用
  • 深圳市工程建设交易服务中心网站网站建设产品展示型的
  • thymeleaf做网站 seo网站建设的基本流程包括
  • 专业制作网站多少钱网页布局设计摘要
  • 企业网站建设费用的预算数商云招聘
  • 做网站 带宽 多少钱网站建设费用核算科目
  • 廊坊网站建设佛山厂商一个ip 做2个网站
  • 网站开发 不好 怎么说百度站长之家
  • 做网站公司 陕西渭南wordpress淘宝客插件破解版
  • 怎么做网站界面分析网站建设公司中心