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

广州网站制作无锡网站建设设计公司

广州网站制作,无锡网站建设设计公司,怀宁县住房和建设局网站,mvc架构购物网站开发构建者模式(Builder Pattern) 是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离。它允许使用相同的构建过程创建不同的表示。该模式通常用于构建复杂对象,这些对象由多个部分组成或具有多个可选属性。 构建者模式的核…

构建者模式(Builder Pattern) 是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离。它允许使用相同的构建过程创建不同的表示。该模式通常用于构建复杂对象,这些对象由多个部分组成或具有多个可选属性。

构建者模式的核心要素

  1. Builder(构建者):定义构建对象的接口,声明创建部分对象的方法。
  2. ConcreteBuilder(具体构建者):实现 Builder 接口,构建并装配各个部件,提供一个方法以获取最终构建的对象。
  3. Director(指挥者):构建过程中的协调者,使用 Builder 对象来构建产品。
  4. Product(产品):由 Builder 构建的最终对象,通常包含多个部件。

示例:创建一个复杂的 Computer 对象

我们将使用构建者模式来创建一个 Computer 对象。一个 Computer 可能包括处理器、内存、硬盘和显卡等部件。

1. 定义 Computer 类(产品)
#include <string>
#include <iostream>class Computer {
public:void setCPU(const std::string &cpu) { m_cpu = cpu; }void setRAM(const std::string &ram) { m_ram = ram; }void setStorage(const std::string &storage) { m_storage = storage; }void setGPU(const std::string &gpu) { m_gpu = gpu; }void showSpecs() const {std::cout << "Computer Specifications:" << std::endl;std::cout << "CPU: " << m_cpu << std::endl;std::cout << "RAM: " << m_ram << std::endl;std::cout << "Storage: " << m_storage << std::endl;std::cout << "GPU: " << m_gpu << std::endl;}private:std::string m_cpu;std::string m_ram;std::string m_storage;std::string m_gpu;
};

2. 定义 Builder 接口

class ComputerBuilder {
public:virtual ~ComputerBuilder() = default;virtual void buildCPU() = 0;virtual void buildRAM() = 0;virtual void buildStorage() = 0;virtual void buildGPU() = 0;virtual Computer* getComputer() = 0;
};

3. 定义 ConcreteBuilder(具体构建者)

class GamingComputerBuilder : public ComputerBuilder {
public:GamingComputerBuilder() { m_computer = new Computer(); }~GamingComputerBuilder() { delete m_computer; }void buildCPU() override { m_computer->setCPU("High-end CPU"); }void buildRAM() override { m_computer->setRAM("16GB RAM"); }void buildStorage() override { m_computer->setStorage("1TB SSD"); }void buildGPU() override { m_computer->setGPU("High-end GPU"); }Computer* getComputer() override { return m_computer; }private:Computer* m_computer;
};

4. 定义 Director(指挥者)

class ComputerDirector {
public:ComputerDirector(ComputerBuilder* builder) : m_builder(builder) {}void construct() {m_builder->buildCPU();m_builder->buildRAM();m_builder->buildStorage();m_builder->buildGPU();}private:ComputerBuilder* m_builder;
};

5. 使用构建者模式

int main() {// 创建具体构建者对象ComputerBuilder* builder = new GamingComputerBuilder();// 创建指挥者对象,并传入具体构建者ComputerDirector director(builder);// 开始构建过程director.construct();// 获取构建完成的产品Computer* computer = builder->getComputer();computer->showSpecs();// 清理资源delete computer;delete builder;return 0;
}

解释

  • Computer 类是最终构建的对象,包含多个属性(部件)。
  • ComputerBuilder 是构建者接口,定义了构建每个部件的方法。
  • GamingComputerBuilder 是一个具体构建者,实现了构建每个部件的方法,并返回最终构建的 Computer 对象。
  • ComputerDirector 使用构建者来构建产品,它知道如何一步一步地构建 Computer 对象,但不直接处理构建过程的细节。
  • main 函数 中创建了一个 GamingComputerBuilder 实例和一个 ComputerDirector 实例,然后使用 ComputerDirector 来构建 Computer 对象,并显示其规格。

通过构建者模式,你可以轻松地创建不同配置的 Computer 对象(如 GamingComputerBuilder),并且可以在不改变构建过程的情况下,创建其他类型的计算机(例如 OfficeComputerBuilder)。

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

相关文章:

  • 单页网站修改汅app下载大全2022
  • 网站一般有哪些模块莱山网站建设
  • 芦苞网站建设如何实现wordpress伪静态
  • 洛阳网站建设哪个好点做视频链接哪个网站没有广告
  • 常州网站推广培训瑞昌建站公司
  • 服装设计素材网站大全餐饮公司网站建设
  • 百色高端网站建设建工网校官网论坛入口
  • 广告发布网站模板学校英文版网站建设方案
  • 网站移动适配河南送变电建设有限公司网站
  • 石牌桥网站建设情感营销经典案例
  • 自己做网站怎么跳过备案app store应用商店下载
  • 招聘网站报表怎么做图书馆网站设计方案
  • 网站建设项目验收付款建e网是干嘛的
  • 企业网站规划案例Wordpress怎么改成中文
  • 手机网站建设市场报价上海中学有哪些
  • 电子商务网站建设基础项目实训建设银行企业版网站
  • 工程房地产行业一条龙网站无锡网站建设公司地址
  • 如何做php分页网站wordpress 容易被收录吗
  • 全国网站备案咨询电话公司网站建设方案书怎么写
  • 怎么才能成功做网站定制网站建设费用预算
  • angular2做的网站有淘宝客网站主机
  • 音乐资源网站开发房地产销售基础知识新手必看
  • 网站注销申请书最好的品牌设计网站建设
  • 网站建设牜金手指花总十五铭坐网站建设
  • 网站动态图标wordpress大小
  • 连云港住房和城乡建设厅网站百度网络营销中心
  • 开网络公司做网站挣钱么南京做网站优化的企业
  • 营销网站模板下载广州seo公司品牌
  • 网站地图怎么上传怎么建设自己个人网站
  • 网站内搜索关键字网络推广文案怎么写