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

开发网站公司推荐重庆工业设计公司有哪些

开发网站公司推荐,重庆工业设计公司有哪些,flash个人网站首页模板,做网站怎么选取关键词建造者模式概念模拟实现建造者模式代码实现 建造者模式 首先先大体了解一下,建造者模式是什么意思,它是怎么实现的? 首先,建造者模式是一种创建型设计模式再一个它是使用多个简单的对象一步一步的搭建出一个复杂的对象它可以将一个…

      • 建造者模式
        • 概念
        • 模拟实现建造者模式
        • 代码实现

建造者模式

首先先大体了解一下,建造者模式是什么意思,它是怎么实现的?

  • 首先,建造者模式是一种创建型设计模式
  • 再一个它是使用多个简单的对象一步一步的搭建出一个复杂的对象
  • 它可以将一个复杂的对象进行构建分离,提供一种创建对象的最佳方式。

建造者模式主要用于构建复杂问题

概念

建造者模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。

模拟实现建造者模式

建造者模式主要基于四个核⼼类实现:

  • 抽象产品类:
  • 具体产品类:⼀个具体的产品对象类
  • 抽象Builder类:创建⼀个产品对象所需的各个部件的抽象接⼝
  • 具体产品的Builder类:实现抽象接⼝,构建各个部件
  • 指挥者Director类:统⼀组建过程,提供给调⽤者使⽤,通过指挥者来构造产品

思维导图

在这里插入图片描述

代码实现
#include <iostream>
#include <string>
#include <memory>//构建电脑需要的零件
class Computer
{public:Computer(){}void setBoard(const std::string &board){_board = board;}void setDisplay(const std::string &display){_display = display;}void showParamaters()//最终终端输出{std::string param = "Computer Paramaters:\n";param += "\tBoard:"+_board + "\n";param += "\tDisplay:"+_display + "\n";param += "\tOs:"+_os + "\n";std::cout << param << std::endl;}virtual void setOs() = 0;//纯虚函数protected:std::string _board;//主板std::string _display;//显示器std::string _os;//操作系统
};class MacBook :public Computer
{
public:void setOs()override{_os = "Mac OS X12";}
};class Builder
{
public:virtual void buildBoard(const std::string &board) = 0;//纯虚函数virtual void buildDisplay(const std::string &display) = 0;virtual void buildOs() = 0;virtual std::shared_ptr<Computer> build() = 0;//定义了一个Computer智能指针对象
};class MacBookBuilder : public Builder
{
public:MacBookBuilder():_computer(new MacBook()){}void buildBoard(const std::string& board){_computer->setBoard(board);}void buildDisplay(const std::string& display){_computer->setDisplay(display);}void buildOs(){_computer->setOs();}std::shared_ptr<Computer> build(){return _computer;}
private:std::shared_ptr<Computer> _computer;
};//指导者
class Director
{
public:Director(Builder* builder):_builder(builder){}void construct(const std::string &board,const std::string &display){_builder->buildBoard(board);_builder->buildDisplay(display);_builder->buildOs();}
private:std::shared_ptr<Builder> _builder;
};int main()
{Builder *builder = new MacBookBuilder();std::unique_ptr<Director> director(new Director(builder));director->construct("华硕主板","三星显示器");std::shared_ptr<Computer> computer = builder->build();computer->showParamaters();return 0;}

在这里插入图片描述

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

相关文章:

  • 网站超市源码网站运营的具体工作包括哪些
  • 山东省监理建设协会网站wordpress有中文版吗
  • 西安博网站建设网站建设属于无形资产
  • 企业网站管理系统演示平台网站前台开发由什么做的
  • 国外js建设网站不同网站相似的页面百度收录吗
  • 微商自己做网站螃蟹网络游戏账号交易平台
  • 外贸企业网站模板做soho 怎么建立网站
  • 怎么创建免费网站吗如何申请商业服务器
  • 山东网站制作定制推广网站平台免费
  • 教育网站平面设计品牌网络营销公司
  • 上海网站推广营销设计asp.net做织梦网站
  • 贵阳专业做网站的公司有哪些中小企业建设网站应注意
  • 自己建设的网站怎么上传图片asp.net网站制作实例
  • wordpress 做大型网站吗新媒体营销和网络营销
  • 创建网站制作仪表企业辽宁建设工程信息网官网盲盒系统
  • 合肥网站建设第一品牌自己建设网站服务器
  • 手机传奇开服网寿光网站优化
  • 安卓手机做网站服务器免费自己制作网站教程
  • 网站开发协议书 英文版网站建设 清远魔方网络
  • 南昌科技网站建设家具网站首页设计
  • 企业网站常见问题贵州网站设计公司
  • 做图赚钱的网站有哪些沪佳装修公司全部门店
  • 网站建设是什么岗位勉费申请做网站
  • 景德镇网站建设哪家口碑好高端网站建设推来客地址
  • 公司网站建设 wordpress网络舆情监测平台
  • 网站制作 合同wordpress模板恢复
  • 怎么在招聘网站做评估菏泽最好的网站建设公司
  • 东莞市建设规划局网站动漫制作专业有哪些课程
  • 免费网站整站模板下载网站建设可以在里面装东西
  • 域名注册网站大全wordpress语言文件编辑