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

理财平台网站建设主机域名网站源码

理财平台网站建设,主机域名网站源码,网页打不开视频怎么办,免费设计房屋效果图软件有哪些作者#xff1a;翟天保Steven 版权声明#xff1a;著作权归作者所有#xff0c;商业转载请联系作者获得授权#xff0c;非商业转载请注明出处 一、建造者模式是什么#xff1f; 建造者模式是一种创建型的软件设计模式#xff0c;用于构造相对复杂的对象。 建造者模式可以…作者翟天保Steven 版权声明著作权归作者所有商业转载请联系作者获得授权非商业转载请注明出处 一、建造者模式是什么 建造者模式是一种创建型的软件设计模式用于构造相对复杂的对象。 建造者模式可以将复杂对象的构建与它的表示分离使得相同的构建过程可以得到不同的表示。如果说工厂模式和抽象工厂模式更注重产品整体那建造者模式则更在乎产品的组成和细节。 建造者模式的优点 封装性好。有效地封装了建造过程主要业务逻辑使得系统整体的稳定性得到了一定保证。解耦。产品本身和建造过程解耦相同的建造过程可以创建出不同的产品。产品建造过程精细化。该模式注重产品创建的整个过程将复杂的步骤拆解得到多个相对简单的步骤使得系统流程更清晰且对细节的把控更精准。易于扩展。如果有新产品需求只需要添加一个建造者类即可不需要改动之前的代码符合开闭原则。建造者模式的缺点 产品的组成部分和构建过程要一致限制了产品的多样性。若产品内部有结构上的变化则整个系统都要进行大改增加了后期维护成本。二、建造者模式 2.1 结构图 客户端即Main主函数创建监督者由监督者带领不同的建造者完成电脑产品的不同表示。 2.2 代码示例 场景描述我联系了一家外包公司由他们的项目经理招人为我组建一批电脑他先招了联想的团队项目结束后我想再弄一批对比下甲方财大气粗于是他们又招了惠普的团队再次完成项目非常不错。 //Product.h /****************************************************/ #pragma once #include iostreamusing namespace std;// 电脑产品类 class Computer { public:// 获取电脑信息void getComputer() {cout 电脑产品配置为 endl;cout 处理器 getCPU() endl;cout 显 卡 getGPU() endl;cout 主 板 getMainBoard() endl;cout 内存条 getRAM() endl;}// 设置处理器void setCPU(string cpu){CPU cpu;}// 设置显卡void setGPU(string gpu) {GPU gpu;}// 设置主板void setMainBoard(string mb) {mainboard mb;}// 设置内存条void setRAM(string ram) {RAM ram;}// 获取处理器string getCPU() {return CPU;}// 获取显卡string getGPU() {return GPU;}// 获取主板string getMainBoard() {return mainboard;}// 获取内存条string getRAM() {return RAM;}private:string CPU; // 处理器string GPU; // 显卡string mainboard; // 主板string RAM; // 内存条 };//Builder.h /****************************************************/ #pragma once #include iostream #include Product.husing namespace std;// 抽象建造者 class Builder { public:// 装配CPUvirtual void addCPU() 0;// 装配GPUvirtual void addGPU() 0;// 装配主板virtual void addMainBoard() 0;// 装配内存virtual void addRAM() 0;// 获取电脑产品Computer getComputer() {return m_computer;}protected:Computer m_computer; // 电脑产品 };// 联想-建造者 class LenovoBuilder : public Builder { public:// 装配CPUvirtual void addCPU() {m_computer.setCPU(Intel 酷睿i7-8700K);}// 装配GPUvirtual void addGPU() {m_computer.setGPU(RTX 4050);}// 装配主板virtual void addMainBoard() {m_computer.setMainBoard(B760);}// 装配内存virtual void addRAM() {m_computer.setRAM(三星DDR4 2666mhz 16G);} };// 惠普-建造者 class HPBuilder : public Builder { public:// 装配CPUvirtual void addCPU() {m_computer.setCPU(Intel 酷睿i5-6300HQ);}// 装配GPUvirtual void addGPU() {m_computer.setGPU(GTX 1060);}// 装配主板virtual void addMainBoard() {m_computer.setMainBoard(B660);}// 装配内存virtual void addRAM() {m_computer.setRAM(金士顿DDR4 2666mhz 16G);} };//Director.h /****************************************************/ #pragma once #include iostream #include Builder.husing namespace std;// 监督者 class Director { public:// 构造函数Director(Builder* builder) {m_builder builder;}// 析构函数~Director() {if (m_builder ! nullptr)delete m_builder;}// 替换建造者void setBuilder(Builder *builder) {m_builder builder;}// 建造Computer construct() {m_builder-addCPU();m_builder-addGPU();m_builder-addMainBoard();m_builder-addRAM();return m_builder-getComputer();} private:Builder *m_builder; // 建造者 }; //main.cpp /****************************************************/ #include iostream #include string #include Director.husing namespace std;int main() {// 一号建造者-联想Builder *builder1 new LenovoBuilder();cout 联想建造者等待就业。 endl;// 由监督者监督项目启动Director *director new Director(builder1);cout 监督者项目经理开始招人做项目。 endl;// 联想项目完毕获取联想电脑产品Computer computer1 director-construct();cout 联想项目结束。 endl;computer1.getComputer();// 二号建造者-惠普Builder *builder2 new HPBuilder();cout 惠普建造者等待就业。 endl;// 替换建造者director-setBuilder(builder2);cout 监督者项目经理替换建造者做新项目。 endl;Computer computer2 director-construct();cout 惠普项目结束。 endl;computer2.getComputer();return 0; } 程序结果如下。 在上述示例中我们可以看到产品有相同的构建过程但是不同的建造者却可以完成不同表示的产品产品的结构类似但具体内容各不相同。 三、总结 我尽可能用较通俗的话语和直观的代码例程来表述我对建造者模式的理解或许有考虑不周到的地方如果你有不同看法欢迎评论区交流希望我举的例子能帮助你更好地理解建造者模式。 如果文章帮助到你了可以点个赞让我知道我会很快乐~加油
http://www.hkea.cn/news/14316504/

相关文章:

  • 专业制作网站 郑先建网站还是先做app好
  • 初学者自己做网站机械类简单的毕业设计
  • 厚街网站建设南京工程造价信息网
  • 椒江住房和城乡建设部网站扒下来的网站怎么做修改
  • 黄页网站推广方案烟台网站建设维护
  • 网站设计 术语WordPress插件框架
  • 网站数据库怎么备份想做个网站推广
  • 京美建站竹子建站教程
  • 公司网站建设多少费用济南兴田德润团队怎么样网站 没有域名需要备案吗
  • 做seo比较好的网站win7怎么做网站
  • 黄骅港汽车站客车时刻表网站建设付款方式
  • 网站建设肆金手指排名9深圳设计网站公司网站
  • 在哪里做企业网站网站推广方式百度云
  • 网站如何做友情链接网站活动专题页面
  • 做网站的设计公司恩施州建设局网站
  • 惠阳网站制作公司台州网站建设策划
  • 柳市网站网站自定义代码
  • 购买网站app制作搭建网站服务器多少钱
  • 曲周专业做网站wordpress 网站生成app
  • 网站营销是什么长沙网页制作公司
  • 建立个人网站视频教程临淄佰渡信息网
  • 摄影网站首页设计青岛专业做网站
  • vps 建网站 代理vs2010做的网站
  • 东莞网站制作网站推广价钱合肥网站系统建设公司
  • 电影网站可以备案吗做网站 二维码登录
  • 做网站必须要dreamever苏州seo优化外包公司
  • 网站服务费算什么费用logo网站设计
  • 成都 网站改版带紫色箭头做网站软件
  • 大连做网站孙晓龙注册深圳公司费用
  • pc端的网站设计方案如何做自己产品网站