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

3小时网站建设平台儿童编程培训班

3小时网站建设平台,儿童编程培训班,大连免费建站,在线咨询 1 网站宣传文章目录 一、建造者模式基础知识建造者模式的结构建造者模式的应用场景 一、建造者模式基础知识 建造者模式#xff08;Builder Pattern#xff09;是一种创建型设计模式#xff0c;它提供了一种优雅的方式来创建复杂对象#xff0c;同时隐藏其构建过程。这种模式允许你通… 文章目录 一、建造者模式基础知识建造者模式的结构建造者模式的应用场景 一、建造者模式基础知识 建造者模式Builder Pattern是一种创建型设计模式它提供了一种优雅的方式来创建复杂对象同时隐藏其构建过程。这种模式允许你通过指定复杂对象的类型和内容来构建它们然后分步骤创建复杂对象的各个部分。 建造者模式的结构 建造者模式通常包含以下角色 产品Product需要构建的复杂对象。 建造者Builder提供一个接口用于创建和表示产品的不同部分。 具体建造者ConcreteBuilder实现建造者接口定义产品对象的各个部分的构建和表示。 指挥者Director负责安排已有模块的建造过程不涉及具体的构建细节。 客户端Client使用指挥者和建造者来创建复杂对象。 建造者模式的应用场景 创建复杂对象当对象的构建过程复杂或者对象本身包含多个成员变量时。 相同的方法不同的执行顺序不同的执行顺序可能会导致不同的结果。 分步骤构建需要分步骤构建对象每一步都可以独立进行。 隔离复杂对象的构建和表示客户端不需要知道对象是如何构建的只需要知道如何使用它。#pragma once#include iostream #include string.husing namespace std;class Phone // 电话类 { public:Phone();~Phone();void setCamera(string camera);void setBattery(string battery);void setScreen(string screen);void PrintCamera();void PrintBattery();void PrintScreen();private:string strCamera; // 摄像头string strBattery; // 电池string strScreen; // 屏幕 };//----------------------#include Phone.hPhone::Phone(){cout 调用Phone类的构造函数. endl; }Phone::~Phone() {cout 调用Phone类的析构函数. endl; }void Phone::setCamera(string camera) {strCamera camera; }void Phone::setBattery(string battery) {strBattery battery; }void Phone::setScreen(string screen) {strScreen screen; }void Phone::PrintCamera() {cout Camera-- strCamera.c_str() endl; }void Phone::PrintBattery() {cout Battery-- strBattery.c_str() endl; }void Phone::PrintScreen() {cout Screen-- strScreen.c_str() endl; } #pragma once#include Phone.hclass Fbuilder // 基类 { public:Fbuilder();~Fbuilder();protected:Phone* phone; // 电话对象public:virtual void buildCamera() 0;virtual void buildBattery() 0;virtual void buildScreen() 0;virtual Phone* GetPhone();};class IphoneBuilder :public Fbuilder { // 苹果派生类 public:IphoneBuilder();void buildCamera();void buildBattery();void buildScreen(); };class HuaweiBuilder :public Fbuilder { // 华为派生类 public:HuaweiBuilder();void buildCamera();void buildBattery();void buildScreen(); };//------------------------------ #include Fbuilder.hFbuilder::Fbuilder(){}Fbuilder::~Fbuilder() {}Phone* Fbuilder::GetPhone() {return phone; }IphoneBuilder::IphoneBuilder() {phone new Phone; } void IphoneBuilder::buildCamera() {phone-setCamera(Iphone Camera Created.); } void IphoneBuilder::buildBattery() {phone-setBattery(Iphone Battery Created.); } void IphoneBuilder::buildScreen() {phone-setScreen(Iphone Screen Created.); }HuaweiBuilder::HuaweiBuilder() {phone new Phone; } void HuaweiBuilder::buildCamera() {phone-setCamera(Huawei Camera Created.); } void HuaweiBuilder::buildBattery() {phone-setBattery(Huawei Battery Created.); } void HuaweiBuilder::buildScreen() {phone-setScreen(Huawei Screen Created.); } #pragma once#include Fbuilder.hclass Director { public:Director();Director(Fbuilder* builder);~Director();void CreateFunc(Fbuilder* builder);void CreateFunc();private:Fbuilder *dbuilder; };//---------------------------#include Director.hDirector::Director() {}// 另一种初始化Director::Director(Fbuilder* builder):dbuilder(builder) Director::Director(Fbuilder* builder) {dbuilder builder; }Director::~Director() {}void Director::CreateFunc(Fbuilder* builder) {builder-buildCamera();builder-buildBattery();builder-buildScreen(); }void Director::CreateFunc() {dbuilder-buildCamera();dbuilder-buildBattery();dbuilder-buildScreen(); }#include iostream using namespace std;#include Phone.h #include Director.h #include Fbuilder.hint main() {Fbuilder* huawei new HuaweiBuilder;Fbuilder* iphone new IphoneBuilder;Director* director new Director;director-CreateFunc(huawei);director-CreateFunc(iphone);Phone* huaweiphone huawei-GetPhone();Phone* iphonephone iphone-GetPhone();huaweiphone-PrintCamera();huaweiphone-PrintScreen();huaweiphone-PrintBattery();cout endl;iphonephone-PrintCamera();iphonephone-PrintScreen();iphonephone-PrintBattery();return 0; }
http://www.hkea.cn/news/14301735/

相关文章:

  • 腾讯云网站模板wordpress 后台登陆地址
  • 太原网站建设制作公司哪家好最好的网站建设团队
  • 做课件ppt网站wordpress里放代码
  • 东莞建设工程交易中心网站wordpress修改站点logo大小
  • 什么是网站可信认证郑州男科哪家比较正规医院
  • 网站子页面设计制作软件教程
  • 北京微信网站搭建多少钱做平面的素材网站
  • 苏州h5网站网站图片加载优化
  • 三角网站建设合肥网站建设案例
  • 怎么建立一个网站存照片视频的链接成立公司的流程和要求及费用
  • 微信网站建设需要那些资料联盟网
  • 政务网站建设 紧急通知WordPress出现404怎么办
  • 长沙公司制作网站费用985短网址生成器
  • 网站开发安装天眼查河南建设网站公司
  • 成都商城网站开发卡易售网站建设
  • 外贸企业网站建设一条龙如何成立网站
  • html网站更新公共空间设计网站
  • 陕西自助建站做网站wordpress tag_id
  • 成都外贸网站建设费用软件开发属于什么专业类别
  • 网站开发公司怎么接单子威联通 wordpress
  • 企业网站管理系统论文中国贸易公司100强
  • 网站开发计划书封面设计自己做个网站需要些什么
  • 湖南网站建设案例太原网站优化推广
  • 响应式网站导航栏模板京东网上商城会员注册步骤
  • 莱州做网站上海品牌建站
  • 天津小型企业网站设计苏州网站建设推荐好先生科技
  • 山东信达建设工程有限公司网站用阿里云服务器做盗版小说网站吗
  • 中国营销型网站有哪些建行个人网站
  • 不良网站浏览窗口seo短视频新地址在哪里?
  • 郑州网站建设时一定需要注意的六点上市设计网站