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

环保设备在那个网站做个人网站可以不备案吗

环保设备在那个网站做,个人网站可以不备案吗,wordpress ent,外贸网站平台下载本文探讨两种广泛使用的创建型模式——简单工厂模式和工厂方法模式#xff0c;解释他们的实现细节、优势以及应用场景。 在下一篇文章中#xff0c;我会补充抽象工厂模式#xff0c;其实工厂模式主要就是为了封装对象的创建过程#xff0c;如果我们不进行封装#xff0c;…本文探讨两种广泛使用的创建型模式——简单工厂模式和工厂方法模式解释他们的实现细节、优势以及应用场景。 在下一篇文章中我会补充抽象工厂模式其实工厂模式主要就是为了封装对象的创建过程如果我们不进行封装如果对象较多创建过程就需要我们自己new来new去并且还要记住具体类的初始化方法还是太麻烦了。 也就是说如果我们需要什么样的对象就直接去找工厂申请让它来代工工厂提供了一个统一的接口。 工厂模式使用的前提一般就是我们要创建的类比较多的时候来使用可以大大简化程序猿的工作量。 文章目录 简单工厂模式实现示例优点和适用场景缺点 工厂方法模式实现示例局限性 简单工厂模式 实现示例 假设我们需要一个基于车辆类型创建车辆对象的应用 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; } };我们现在创建具体的Bmw和Audi对象 int main () {Car *p1 new BMW(X1);Car *p2 new Audi(A6);return 0; }如果我们需要创建的类比较多并且对象的初始化方法比较复杂那么这样的类实例化就不太符合一个良好的设计要求所以现在我们对类进行封装 enum CarType {BMW, AUDI }; class SimpleFactory { public:Car* createCar(CarType ct) {switch (ct){case BMW:return new Bmw(X1);case AUDI:return new Audi(A6);default:cout 传入工厂的参数不正确 ct endl;break;}return nullptr;} };我们创建了一个美剧类并且设计一个简单工厂类之后我们需要创建对象只要调用该类即可 int main () {unique_ptrSimpleFactory factory(new SimpleFactory());unique_ptrCar p1(factory-createCar(BMW));unique_ptrCar p2(factory-createCar(AUDI));p1-show();p2-show();return 0; }很明显简单且直观。 优点和适用场景 简单工厂模式的主要优点是减少系统中的代码重复并且封装了对象创建的细节使得代码库更简洁、更易于维护。 缺点 但是简单工厂也有不好的地方从逻辑上来讲同一个工厂不应该啥都建啊又是宝马奥迪、以后说不定还有手机啥的不符合逻辑。 并且我们的这个简单工厂不符合“开闭原则”如果我们有新增的对象、或者想删除某个对象都必须修改整个接口这个接口就会变来变去永远不封闭。 第一一个工厂负责各种对象的创建不太符合逻辑第二简单工厂的接口设计根本就不封闭不符合开闭原则 所以我们的工厂方法应运而生。 工厂方法模式 工厂方法模式是简单工厂的一种扩展每个具体产品都有一个相应的工厂这样也符合我们真是生产中的逻辑。 当然最重要的是工厂方法模式符合我们的“开闭原则”对扩展开放对修改封闭 实现示例 我们还是使用上述的例子我们再定义一个工厂方法的抽象类然后为每一个产品都设计一个工厂类 //工厂方法 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; }使用工厂方法后很明显我们如果想生产新的产品直接写一个专属的工厂就可以了而不需要改变我们原有的宝马工厂或者奥迪工厂。所以该设计符合我们的开闭原则。 局限性 工厂方法模式最大的一个问题就在于 假如我们现在考虑一类产品也就是所谓的产品族有关联关系的系列产品 比如说“华为工厂”我们就可以生产华为手机、耳机、充电线等等我们不可能也不应该为每一种产品都专门设计一个工厂如果这样设计工厂那我们的产品类就太多太多了。 那么如何解决呢我们可以引入抽象工厂模式。 具体请看本文【C设计模式二抽象工厂模式】
http://www.hkea.cn/news/14440406/

相关文章:

  • 东莞网站建站服务公司有没有学做衣服的网站
  • dremwear做网站网店营销策划方案范文
  • 网站设计的要求有哪些网站标题flash
  • 学做网站能赚钱吗做网站虚拟主机
  • 青岛做网站青岛做网站网站建设和网络推广方案
  • 商洛市住房和城乡建设局网站苏州高级网站建设
  • 手机网站建设优化软件免费学习做网站
  • 共享经济网站建设策划书关闭wordpress多站点
  • 中国网站建设第一品牌沈阳专门代做网站的
  • 遵义网站建设哪家好建立网站的基本步骤
  • 做asp网站教程网站的互动功能
  • wordpress工业产品企业网站主题网站被k申述
  • 网站内容建设项目预算福州网站维护公司
  • 设计 网站访问次数企业咨询公司收费标准
  • 南昌企业网站建设软件技术有限公司
  • 做网站细节安陆网站建设推广
  • 北京网站制作公司建站网站建站平台源码
  • 网站建设注意门户网站wordpress哪个比较好
  • 无锡网站建设无锡速联科技百度推广代理公司
  • 可以投稿的写作网站如何创建免费网站
  • 中核华兴建设有限公司投标网站企业培训体系
  • 建设装饰网站用php做的博客网站有哪些
  • 佛山网站开发html5 珠宝网站
  • 中企做一个网站多少钱平面设计外包公司
  • 东莞网站营销包头焦点网站建设
  • 虚拟主机 两个网站部门网站建设意见
  • 织梦响应式网站模板wordpress 禁止保存
  • 网站推广文章行业关键词一览表
  • 福田沙头网站建设wordpress 客户端管理员密码
  • asp 网站模板淘宝网电脑版