范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

设计模式13建造者模式

  建造者模式
  将一个复杂的对象构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
  建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。
  如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。"
  几个类的说明: Director: 指挥者,指挥不同的建造者。 Builder: 建造者抽象类,定义构建产品所需要的抽象接口。 具体的建造者: 实现抽象接口。 Product: 产品,具体的建造者为产品构建产品的每一部分。
  为什么要有 Director ?
  通过指挥者指挥建造者,建造者需要调用什么方法,调用的人可以忽略,不必知道。
  建造者模式主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。
  建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。
  建造者模式示例代码 #include #include using namespace std;  class Product { private:     vector parts; public:     void Add(const string &str) {         parts.push_back(str);     }     void Show() const {         cout << "Show =============>" << endl;         for (auto part : parts) {             cout << part << endl;         }     } };  class Builder { protected:     Product product; public:     virtual void BuildA() = 0;     virtual void BuildB() = 0;     virtual Product GetResult() const = 0; };  class Director { public:     void Build(Builder &build) {         build.BuildA();         build.BuildB();     } };  class DerivedBuilder1 : public Builder { public:     virtual void BuildA() {         product.Add("DerivedBuilder1 BuildA");     }     virtual void BuildB() {         product.Add("DerivedBuilder1 BuildB");     }     virtual Product GetResult() const override {         return product;     } };  class DerivedBuilder2 : public Builder { public:     virtual void BuildA() {         product.Add("DerivedBuilder2 BuildA");     }     virtual void BuildB() {         product.Add("DerivedBuilder2 BuildB");     }     virtual Product GetResult() const override {         return product;     } };  int main(int argc, char const *argv[]) {     DerivedBuilder1 build1;     DerivedBuilder2 build2;      Director director;      director.Build(build1);     Product p1 = build1.GetResult();     p1.Show();      director.Build(build2);     Product p2 = build2.GetResult();     p2.Show();     return 0; }

科学网南开化学学者荣获中国化学会多项学术奖励近日,中国化学会陆续公布了多项学术奖励名单,南开大学化学学院教授朱守非因其开辟催化氢转移新方向,建立氢转移新反应和新策略,带动氢转移研究进展,获第十一届中国化学会巴斯夫公司青年知识数字洞见版号重启发放,游戏出海热能否持续?近日,国内游戏版号开始重新发放,行业迎来了期待已久的利好消息。但由于版号的数量较少,对大多数企业来说,并没有安然度过寒冬期。游戏行业仍需面对总量控制内容审核未成年人保护等一系列严格2022年5月,3500元4000元手机推荐首先,这个价位的手机不用过多关注性能,这个价位差不多是旗舰的价位了,性能一般都比较强,大家只需要关注自己的需求,选择就可以了。你觉得同价位哪款比较强的,也可以在评论区留言。今天推荐20G256GB骁龙870,现已跌至2498元,6400万四摄旗舰售价亲民2022年诞生的新旗舰手机确实很多,但是采用真全面屏设计的产品却比较少见,为了满足市场的需求,中兴发力,在5月9日,如期发布了全新一代真全面屏手机,它就是中兴Axon40Ultra小米的性价比是可持续的吗?小米的电视销量也成为国内第一了,看了看价格,真的很难想象有55寸的液晶电视1500元,32寸的不到600元,电视机真的成了白菜价,这样玩,传统电视机厂家谁能干得过?我没用过任何小米Instagram正式测试NFT,用户展示时将自带闪烁特效记者司林威5月10日,社交平台Instagram正式宣布进入NFT领域,美国的一部分创作者和收藏者将被允许测试NFT相关功能。该公司发布了一篇官方声明来介绍该功能。测试用户可以在I谷歌正式发布Android13更好玩更开放了标杆旗舰Pixel7亮相谷歌开发者大会如期进行,会上也是展示了最新的Android13系统和当家的旗舰手机,其都要在今年秋季正式推出,你期待吗?比较有趣的是,谷歌在大会上同步预告了新一代Pixel77Pr倒计时!搜狗地图将于5月15日正式下线5月11日,搜狗地图在官网表示,搜狗地图将于2022年5月15日23点正式下线,届时关闭所有相关服务。搜狗地图还建议用户下载腾讯地图。公开信息显示,搜狗地图成立于1999年,原名图海康存储首款PCIeGen4。0固态硬盘C4000ECO正式上市近日,海康存储首款PCIeGen4。0固态硬盘C4000ECO正式上市,提供512GB和1TB两种容量规格,512GB标准版售价499元,1TB标准版售价799元。该款SSD基于P微信太吃内存?教你如何快速清理无用垃圾,释放手机大量内存微信真的太吃内存了,夸张到什么程度呢?我打开手机的存储空间看了一眼,其他APP一年下来包缓存数据也就1个G左右,占用内存多一些的也就3个G,大型的游戏也不过12个G左右,而微信竟占融资丨新氢动力完成数千万元A轮融资,容亿投资文华海汇投资创业邦获悉,近日,氢能工业车辆发动机系统研发生产商新氢动力宣布完成数千万元A轮融资,本轮融资由容亿投资文华海汇投资。天津新氢动力科技有限公司正式成立于2019年11月,专注于氢能工
400元国产魔改笔记本酷睿I7处理器量产!支持100元2400双通道内存华强北黑科技的国产魔改笔记本处理器基本已经发展到了最终阶段,说人话就是,BETA版基本结束,正式版最终版成型。有趣的是,这种BETA的过程是相当简单粗暴的,完全是因为性价比过高,而1000元英特尔酷睿11代I9处理器细节曝光!利用BUG获得免费高性能前面必须要说的话INTEL酷睿11代处理器匆忙上市,相关配套和BIOS紧赶慢赶,相对于以前的INTEL处理器而言,这代可以说是迷雾重重1,AMD锐龙五代处理器上市各种BUG不断,大为了200元的AMD处理器跟官方硬掰手腕?利用BUG破解超频今天文章的主角,就是最新版本的200GE处理器了,双十一之前的硬件价格各种成迷,魔改君也是忙的要死。其实本来就不怎么关注各种活动各种价格,相反比较关心产品本身的产品力。送大家几句实16GDDR3内存仅135元?奇葩电脑主机不到600元吃鸡今天的文章大概就是收尾了,起码不会继续花费更大的精力去摆弄这些英特尔笔记本魔改神U了一,来自粉丝的报告上面就是前几天把玩的QL3X映泰的H110MDPRO一套了,粉丝也是一边玩玩,科目一交规知识速记口诀,简单好记不会忘,留着备用考驾照的朋友都知道,交规知识不仅多而且杂,完全靠死记硬背也需要花费大量的时间。虽然通过做模拟课题练习能提高记忆,但是动辄上千道题目也让人头皮发麻。其实很多交规知识考试都是有规律可循汽车保养很简单,但若你用车习惯不好,花钱大修也是常有的事都说汽车是三分开七分养,很多老司机不以为然,经常嘲讽爱车人士,认为汽车买来就是开的,简单保养就可以了,没必要在意用车细节,网上所谓的汽车保养知识就是忽悠小白的。对于这一类的置评,我乳业市场或迎变革简爱酸奶夏海通以品质缔造安心蓝图随着人们健康观念的提升,低糖无糖需求在奶类消费中的占比开始不断扩大。据广发证券研究报告显示,仅在20122018年间,全球无糖低糖产品数量的平均年复合增长率就达到了16,其中亚太地大数据时代,这些举动已泄露隐私!常见错误操作盘点,你中招没随着信息化时代的来临,依靠大数据推算俨然已成为各大平台营利的一种方式。但任何事物都有正反两面,大数据推动各行各业的发展,了解消费结构层次,让购物更加精准便捷,可以说大数量一定程度的鸿星尔克再添新话题,这一次与消费者携手共创品牌引言时值国庆黄金周,在疫情常态化的背景下,国内各大实体行业的营业也迎来一波小高峰,诸多品牌选择在国庆假期开业新店,迎合国内日趋复苏的消费需求。与此同时,伴随国民经济水平的提升,对于首发骁龙865顶级2K屏,你能想象小米11只要3999元?时隔多月,我们在年底之前迎来了小米11,作为小米冲击高端的第二部数字旗舰,它到底有何特色呢?很简单,一个首发搭载并长期占有骁龙888的优点,便足以让小米11成为大家的过年礼,这就完青春当燃勇敢出发自由式滑雪运动员谷爱凌成为凯迪拉克品牌代言人(2021年9月3日,上海)今日,上汽通用汽车凯迪拉克品牌宣布,自由式滑雪运动员谷爱凌出任凯迪拉克品牌代言人。同一天,刚过完成人礼生日的谷爱凌,也迎来了人生中第一台凯迪拉克专属座驾