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

python做笔记的网站制作精美网站建设服务周到

python做笔记的网站,制作精美网站建设服务周到,网站怎样做超链接,母婴推广网站建造者模式概念模拟实现建造者模式代码实现 建造者模式 首先先大体了解一下,建造者模式是什么意思,它是怎么实现的? 首先,建造者模式是一种创建型设计模式再一个它是使用多个简单的对象一步一步的搭建出一个复杂的对象它可以将一个…

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

建造者模式

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

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

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

概念

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

模拟实现建造者模式

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

  • 抽象产品类:
  • 具体产品类:⼀个具体的产品对象类
  • 抽象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/555117/

相关文章:

  • 怎么做网站关键词视频网站建设与维护 教学大纲
  • r语言网站开发如何请人做网站
  • 网站建设 保定做软件外包的网站
  • 关于平面设计的网站php网站建设设计制作方案
  • 网站做乘法表织梦书法网站模板
  • 广州有网站建设学校网站建设宗旨是指
  • 网站设计工作流程扬中论坛
  • 站酷设计网站官网网址东莞网络做推广公司
  • 网站和平台有什么区别做问卷调查有哪些网站
  • 网站用什么构建中卫网站定制开发设计
  • 网站分页设计深圳机械网站建设
  • 南海网站建设价格保险平台有哪些
  • 网站 文件验证jsp是前端还是后端开发的
  • 网站导航栏垂直域名不同网站程序相同
  • 自己做家具网站东莞公司网站做优化
  • 网站管理系统模板甘肃省最新出行通告
  • 适合设计师看的设计网站同城购物网站建设成本
  • 苏州高端网站设计定制网络营销是什么职业
  • 东莞外贸网站建设哪家好php网站开发招聘
  • 网站制作 p年终总结汇报ppt模板
  • 襄阳建设21网站微网站怎么建设
  • 北京网站建设排名浩森宇特属于建筑施工企业会计存货的是
  • 宁波市建设工程检测协会网站网络营销方案流程
  • 有哪个网站教人做美食做推广的网站带宽需要多少
  • 沂源做网站闵行区网站建设
  • 兰州新区建站房天下fangcom
  • 宁波 做网站的app制作外包公司
  • 滨海新区建设网站网站配色 要用什么原则
  • 外包公司做的网站快速排名优化推广价格
  • 怎么建设网站是什么网站开发涉及到缓存吗