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

关于做公司app的软件或网站网络营销师证

关于做公司app的软件或网站,网络营销师证,做一个网站只做前端怎么做,网络营销推广招聘广告文章目录 通俗易懂的建造者模式:手把手教你造电脑一、现实中的建造者困境二、建造者模式核心思想三、代码实战:组装电脑1. 产品类 - 电脑2. 抽象建造者 - 装机师傅3. 具体建造者 - 电竞主机版4. 具体建造者 - 办公主机版5. 指挥官 - 装机总控6. 客户端使…

在这里插入图片描述

文章目录

  • 通俗易懂的建造者模式:手把手教你造电脑
    • 一、现实中的建造者困境
    • 二、建造者模式核心思想
    • 三、代码实战:组装电脑
      • 1. 产品类 - 电脑
      • 2. 抽象建造者 - 装机师傅
      • 3. 具体建造者 - 电竞主机版
      • 4. 具体建造者 - 办公主机版
      • 5. 指挥官 - 装机总控
      • 6. 客户端使用
    • 四、模式优势解析
    • 五、适用场景速查表
    • 六、模式全家福
    • 七、常见误区提醒
    • 八、现实应用案例


通俗易懂的建造者模式:手把手教你造电脑

一、现实中的建造者困境

想象你开了一家电脑组装店,客户经常提出这样的需求:

"我要i7处理器+32G内存+RTX4090显卡的电竞主机"
"给我配个i5处理器+16G内存+核显的办公机"
"这个配置能不能换成1TB固态硬盘?"

直接在代码里写N个if-else会变成这样:

Computer buildComputer(string type) {Computer c;if (type == "gaming") {c.cpu = "i7";c.ram = "32G";//...其他20个部件配置} else if (type == "office") {//...重复代码}return c;
}

当需要新增配置项时,所有条件分支都要修改。这时候就需要【建造者模式】登场了!


二、建造者模式核心思想

将复杂对象的构建过程与它的表示分离,让同样的构建过程可以创建不同的表示。

🌰 举个栗子:
就像乐高积木,同样的基础零件(CPU/内存/硬盘),通过不同的搭建顺序(建造者),可以造出赛车(游戏电脑)或房屋(办公电脑)。


三、代码实战:组装电脑

1. 产品类 - 电脑

class Computer {
public:void setCPU(string cpu) { this->cpu = cpu; }void setRAM(string ram) { this->ram = ram; }void setGPU(string gpu) { this->gpu = gpu; }void showConfig() {cout << "【电脑配置】\n"<< "CPU: "<< cpu << "\n"<< "内存: "<< ram << "\n"<< "显卡: "<< gpu << endl;}private:string cpu = "i3";string ram = "8G";string gpu = "集成显卡";
};

2. 抽象建造者 - 装机师傅

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

3. 具体建造者 - 电竞主机版

class GamingComputerBuilder : public ComputerBuilder {Computer* computer = new Computer();public:void buildCPU() override { computer->setCPU("i7-13700K"); }void buildRAM() override { computer->setRAM("32G DDR5"); }void buildGPU() override { computer->setGPU("RTX 4090"); }Computer* getComputer() override { return computer; }
};

4. 具体建造者 - 办公主机版

class OfficeComputerBuilder : public ComputerBuilder {Computer* computer = new Computer();public:void buildCPU() override { computer->setCPU("i5-12400"); }void buildRAM() override { computer->setRAM("16G DDR4"); }void buildGPU() override { /* 使用核显 */ }Computer* getComputer() override { return computer; }
};

5. 指挥官 - 装机总控

class Director {ComputerBuilder* builder;public:void setBuilder(ComputerBuilder* b) { builder = b; }Computer* construct() {builder->buildCPU();builder->buildRAM();builder->buildGPU();return builder->getComputer();}
};

6. 客户端使用

int main() {Director director;// 组装电竞主机director.setBuilder(new GamingComputerBuilder());Computer* gamingPC = director.construct();gamingPC->showConfig();// 组装办公主机director.setBuilder(new OfficeComputerBuilder());Computer* officePC = director.construct();officePC->showConfig();return 0;
}

四、模式优势解析

1️⃣ 解耦复杂度:把20个配置项分散到不同建造者中
2️⃣ 开闭原则:新增配置项只需加建造者,不改现有代码
3️⃣ 去重复:组装流程统一在Director中管理
4️⃣ 可视化配置:客户端代码像搭积木一样清晰


五、适用场景速查表

场景适用建造者模式?
对象构造过程复杂✔️
需要不同表示的同类产品✔️
构造过程需要分步控制✔️
简单对象构造

六、模式全家福

Director
ComputerBuilder
GamingBuilder
OfficeBuilder
Computer

七、常见误区提醒

❌ 不要为了用模式而用模式(简单对象不需要)
❌ 当构造过程需要动态变化时,考虑使用工厂模式
✅ 当出现大量if-else构造代码时,就是建造者的信号


八、现实应用案例

  1. Java的StringBuilder
  2. SQL查询构建器(如Hibernate)
  3. LaTeX文档生成器
  4. 软件安装程序的配置向导

掌握建造者模式,就像拿到了对象构造的"乐高说明书"。下次面对复杂对象的组装需求,试着用这个模式解耦你的代码,让系统像模块化积木一样灵活可扩展!

http://www.dtcms.com/wzjs/259346.html

相关文章:

  • 哪个网站可以做pcb加工兰州网络推广关键词优化
  • 福州做网站建设免费网站alexa排名查询
  • 阿里巴巴国际贸易网站官网在线生成个人网站免费
  • 广州番禺服装网站建设谷歌seo综合查询
  • 中英文切换网站怎么做如何做网络推广
  • 新闻专业为啥学网页制作搜索引擎优化好做吗
  • 网站开发背景意义免费开发软件制作平台
  • 网上订货发货网站建设免费大数据查询
  • 北京网站营销与推广乐陵seo外包公司
  • 商城网站建设是什么关键词排名查询
  • 怎样做网站首页图片变换网站seo具体怎么做?
  • 重庆彼客的网站是谁家做的2345网址导航浏览器下载
  • 郑州网站建设商城定制上海疫情突然消失的原因
  • 网站平台设计团队百度天眼查公司
  • 深圳企业网站建设费用百度大数据查询怎么用
  • 淄博专业做网站长沙网站建设服务
  • 自己做网站还有出路吗有免费推广平台
  • 东莞南城网站制作公司腾讯企业qq官网
  • 优化步骤百度关键词优化技巧
  • 网站举报入口郑州网络推广代理顾问
  • 店群智能营销管理系统seo自媒体运营技巧
  • 便宜的广州网站建设服务新闻头条今天最新消息
  • 广东深广东深圳网站建设服务宁德网站建设制作
  • 京东网站建设的经费预算深圳 网站制作
  • 发布个人免费网站的一般流程图网站免费制作
  • 国内设计网站公司口碑营销策划方案
  • 注册小程序账号上海seo外包公司
  • 政务网站建设方案百度搜索热度查询
  • 智慧团建系统官方网站seo搜索优化网站推广排名
  • wordpress英文垃圾评论seo关键词排名优化哪家好