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

找程序员做网站金华企业做网站

找程序员做网站,金华企业做网站,网站seo基础优化,湖北省最新消息今天C建造者设计模式 什么是建造者设计模式 建造者设计模式是一种创建型设计模式,它是一种将复杂对象的分解为多个独立部分的模式,以便于构建对象的过程可以被抽象出来并独立变化。 该模式有什么优缺点 优点 灵活性:建造者设计模式允许对象的…

C++建造者设计模式

在这里插入图片描述

什么是建造者设计模式

建造者设计模式是一种创建型设计模式,它是一种将复杂对象的分解为多个独立部分的模式,以便于构建对象的过程可以被抽象出来并独立变化。

该模式有什么优缺点

优点

  1. 灵活性:建造者设计模式允许对象的部分以不同的方式进行构建,从而提高了对象的灵活性。
  2. 分离性:建造者设计模式将对象的构建过程与其表示分离开来,使得两者可以独立变化。
  3. 可重用性:建造者设计模式可以将对象的构建过程封装起来,以便在不同的场景下重用。

缺点

  1. 复杂性:建造者设计模式需要定义多个类和接口,这会增加代码的复杂度。
  2. 可读性:建造者设计模式的代码可能不够直观,需要一定的经验才能理解。

如何使用

下面是一个使用C++实现建造者设计模式的例子:

#include <iostream>  
#include <string>  
#include <vector>  // 定义产品类  
class Product {  
public:  void add(std::string part) {  parts.push_back(part);  }  std::string toString() {  std::string result = "";  for (auto part : parts) {  result += part + " ";  }  return result.substr(0, result.length() - 1);  }  private:  std::vector<std::string> parts;  
};  // 定义建造者接口  
interface Builder {  virtual void buildPart(std::string part) = 0;  
};  // 实现建造者类  
class ConcreteBuilder : public Builder {  
public:  void buildPart(std::string part) override {  product->add(part);  }  private:  Product* product;  public:  ConcreteBuilder(Product* product) : product(product) {}  
};  // 定义指挥者类  
class Director {  
public:  void construct(Builder* builder) {  builder->buildPart("Part1");  builder->buildPart("Part2");  builder->buildPart("Part3");  }  
};  // 使用建造者设计模式的例子  
int main() {  Product* product = new Product();  Builder* builder = new ConcreteBuilder(product);  Director director;  director.construct(builder);  std::cout << product->toString() << std::endl;  delete product;  delete builder;  return 0;  
}

在上面的例子中,我们首先定义了一个Product类,它表示要构建的对象。然后我们定义了一个Builder接口,它定义了构建对象的方法。接着我们实现了ConcreteBuilder类,它实现了Builder接口,并将对象的构建过程封装起来。最后我们定义了Director类,它负责指导构建过程。在main函数中,我们创建了一个Product对象和一个ConcreteBuilder对象,并将它们关联起来。然后我们使用Director类来指导构建过程,最终输出构建好的对象。需要注意的是,在使用建造者设计模式时,需要仔细设计接口和类之间的关系,以便正确地构建对象。

http://www.yayakq.cn/news/773327/

相关文章:

  • 网站建设竣工验收报告wordpress不能发布
  • 建设网站还要云服务器吗iis网站ip
  • 合肥网站设计公司自己做的网站打开显示很慢
  • 六安网站建设推广上海搬家公司有哪些
  • flask做视频网站wordpress调用ip查询
  • 企业网站域名注册搜索wordpress博客
  • 太原网站网络推广东莞网站建设企业
  • 如何做区块链网站gps建站步骤视频
  • 域名注册后网站建设全部游戏免费(试玩)
  • 网站建设一级二级目录沈阳网站建设公司的公司
  • 关于网站建设规划方书案例样式合肥最新通告今天
  • wordpress网站设密码谷歌google搜索引擎入口
  • 网站点击量统计培训网址
  • 网站模板好怎么建设h5网站
  • 泉州大型网站建设seo营销名词解释
  • 有什么网站做投标设计memcache安装wordpress
  • 如何注册网站免费的吗自己能不能做个网站
  • 有没有可以做网站动图的软件网站关键词如何收录
  • 网和网站的区别个人作品网站链接怎么做
  • 深圳工程建设网站网站建设财务分析
  • 网站建设属于什么税动易网站栏目
  • 潍坊网站建设盛鸿科技电脑上做免费网站教程
  • 杭州 企业 建网站互联网推广营销方案
  • 建设网站建设哪里好网站开发企业开发
  • 重庆招聘一般上什么网站服务范围 网站建设公司
  • 用自己的电脑做视频网站移动端网站建设公司
  • 怎么根据已有网站做新网站212200扬中论坛
  • 高校招生网站建设淘宝网站怎么做特价
  • 制作一个网站要花多少钱最有效的网站推广费用
  • 郑州网站建设乛汉狮网络网站备案归属地