版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,Builder模式,2,一、所涉及的C+面向对象编程语法,1引用 /一旦引用被定义,它就不能再指向其他对象,3,一、所涉及的C+面向对象编程语法,2引用 /拷贝大型的类对象时间空间开销太大,4,一、所涉及的C+面向对象编程语法,3引用 /指针需要引用(别名)吗?,5,一、所涉及的C+面向对象编程语法,3引用,6,二、Builder模式,1问题: ProductA *pa=new ProductA; ProductB *pb=new ProductB; ProductC *pc=new ProductC; 产品ABC之间并无联系,但创建过程漫长、步骤多、算法复杂,7,二、Builder模式,
2、1问题: 创建一个产品(对象)的过程很长,步骤很多,内部结构很复杂。 常常会出现新的产品,需要新的生成器相配合。 有多个产品需要创建,产品之间没有联系;创建算法复杂,可重用,8,二、Builder模式,2核心思想 复杂对象的构建与其表示分离,9,二、Builder模式,3解决方案-第一步 A 针对产品A、B、C定义三个具体的Builder class BuilderA Part1(); Part2(); Part3(); GetResult(); ;,10,二、Builder模式,3解决方案-第一步 B C class BuilderB Part1(); Part2(); Part3(); G
3、etResult(); ;,class BuilderC Part1(); Part2(); Part3(); GetResult(); ;,11,二、Builder模式,3解决方案-第二步 找出三个具体Builder的共性,定义父类 class BuilderA:public Builder /.省略; class BuilderB:public Builder /.省略; class BuilderC:public Builder /.省略; /UML图表示,12,二、Builder模式,3解决方案-第三步 定义导向器Director class Director void Constru
4、ct(); ,13,二、Builder模式,3解决方案-第四步 实现导向器 void Director:Construct() builder-Part1(); builder-Part2(); builder-Part3(); ,14,二、Builder模式,3解决方案-第六步 如何使用 main() ProductA *pa; /声明产品A BuilderA *ba=new BuilderA; /具体builder用来生产A Director *d=new Director(ba); /参数是具体builder d-Construct(); /创建产品,过程较长 pa=d-GetResul
5、t(); /得到产品的结果 ,15,二、Builder模式,4Builder创建型模式的本质 分离出创建产品的复杂的算法和步骤 ProductA *pa=new ProductA; 变为 BuilderA *ba=new BuilderA; Director *d=new Director(ba); d-Construct(); ProductA *pa =d-GetResult();,16,二、Builder模式,5结构:用UML中的类图、交互图表示 画法,17,二、Builder模式,6根据交互图写出代码 ConcreteBuilder *cb=new ConcreteBuilder; D
6、irector *d=new Director(cb);/参数、构造函数 d-Construct(); Product *p=d-GetResult();,18,二、Builder模式,7代码:书中的代码用类图表示,19,二、Builder模式,8一个游戏的例子: BuBing* bb=new Bubing; /创建步兵 Hawk* hk=new Hawk; /创建鹰骑士 FeiJi * fj =new Feiji; /创建直升机 /创建过程长、步骤多、三个兵种关联少,20,二、Builder模式,9与工厂方法的区别: 1Builder模式的重点是工厂(具体生成器),可重用,不同的具体生成器之间有共性;工厂方法模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 10265-2026核级可烧结二氧化铀粉末技术条件
- 2027届广西来宾市化学九年级第一学期期末监测模拟试题含解析
- 黑龙江省七台河市勃利县2027届九年级化学第一学期期中联考试题含解析
- 2027届山东省潍坊诸城市第七中学物理九上期末统考试题含解析
- 山东省威海市乳山市2027届物理九上期末经典模拟试题含解析
- 北京市石景山区景山学校2027届九年级化学第一学期期末达标检测试题含解析
- 2026能源勘探产业市场现状分析发展研究报告
- 2027届安徽省宣城市第十二中学九年级物理第一学期期末联考试题含解析
- 河南省长葛市第一初级中学2027届化学九年级第一学期期末质量跟踪监视试题含解析
- 2026中国智能机器人自动化行业市场现状供需分析及投资评估规划分析研究报告
- 2026年昆山经济技术开发区公开招聘社区编外工作人员18人考试备考题库及答案详解
- 抗耐药革兰阴性菌治疗指南2026
- 2026年四川德阳电子科技大学德阳研究院(德阳三星湖传感技术产业研究中心)面向社会公开招聘3人笔试备考试题及答案详解
- 2026CSCO结直肠癌诊疗指南解读课件
- 2026年云南省地矿测绘院有限公司招聘(37人)笔试备考试题及答案详解
- 眼眶爆裂性骨折诊断与治疗
- 环卫车辆更新改造项目可行性研究报告
- GB/Z 160-2025电气简图用图形符号IEC 60617标准化设计指南
- XXX公司2026年度安全生产资金投入计划(安全生产资金投入制度)
- 2026届云南省红河州、文山州第四次州统测预测历史试题(含答案)
- 巨幼细胞性贫血诊疗指南(2025年版)
评论
0/150
提交评论