




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,Builder(生成器)模式,解决的是哪一类问题【Why】什么是Builder模式【What】如何解决这类问题【How】Builder模式的使用条件【适用性】Builder模式的结构及实现,.,2,导致问题的原因:用户需求的变化(面向对象的思想的优点就是能应对需求变化)针对的是一个复杂的对象(它是由很多的子对象组成的,比如:House对象),复杂对象的各个部分相对变化要剧烈,但这些部分的算法的组合相对是稳定的。,Builder(生成器)模式,解决的是哪一类问题?,.,3,Builder(生成器)模式,意图,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以构建不同的表示。,把不变与变得东西隔离开。,.,4,Builder(生成器)模式,简单地说,就好象我要一座房子住,可是我不知道怎么盖,也不知道怎么样设计,于是我需要找一帮民工,他们会砌墙,建门等,还得找个设计师,他知道怎么设计。当然,还要确保民工听设计师的领导,而设计师本身不干活,光是下命令,这里砌一堵墙,这里砌一扇门,这样民工开始建设,最后,我可以向民工要房子了。在这个过程中,设计师是什么也没有,除了他在脑子里的设计和命令,所以要房子也是跟民工要。,.,5,Builder(生成器)模式,适用性,当同时满足以下情况的时候可以使用Builder模式:a.当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时。b.当构造过程必须允许构造的对象有不同的表示时(不同风格的房子)。,.,6,Builder(生成器)模式,结构,注意:导向器(Director)是调用BuildPart()方法,来将不同部件(Part)组合到目标Product中的。如果只是组合不同数量的现有部件,则不用定义新的ConcreteBuilder。,.,7,Builder(生成器)模式,参与者,Builder:为创建一个Product对象的各个部件指定抽象接口。ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件。Director:构造一个使用Builder接口的对象。Product:表示被构造的复杂对象。,.,8,Builder(生成器)模式,协作,.,9,Builder(生成器)模式,建造不同风格的房子:,.,10,Builder(生成器)模式,项目导航,.,11,Builder(生成器)模式,回顾:,Builder模式的核心思想:1.将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构件算法和组装方式可以独立应对变化;复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式。2.抽象的Builder类,为导向者可能要求创建的每一个构件(Part)定义一个操作(接口)。这些操作缺省情况下什么都不做。一个ConcreteBuilder类对它所感兴趣的构建重定义这些操作。每个ConcreteBuilder包含了创建和装配一个特定产品的所有代码(注意:ConcreteBuilder只是提供了使用部件装配产品的操作接口,但不提供具体的装配算法,装配算法在导向器Director中定义)。这些代码只需要写一次;然后不同的Director可以复用它,以在相同部件集合的基础上构建不同的Product。,.,12,Builder(生成器)模式,回顾:,Builder模式的核心思想:回过头再来看,类图结构中对Director的注释,为什么不是一句builder-BuildPart()就够了,为什么要有这个循环呢?BuildPart方法封装了创建Part、并组装到Product中的操作,循环调用多次时,可以反复复用BuildPart操作,让目标Product聚合多个Part。另外,需要指出的一点:单纯的Builder模式中,“不同Product类型”的组成部件之间,不能进行组合或替换。譬如上面的两个示例中:组成中国式的Door、W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲方小店铺租赁合同范本
- 燃油安全安装合同协议书
- 美甲店加盟协议合同范本
- 物流合同配送协议书模板
- 股权合作协议补充协议书
- 签约非遗传承人合同范本
- 自建洗车房自用合同范本
- 苗木培育承包合同协议书
- 法律居间代理协议书模板
- 猫舍合作合同协议书范本
- 顶管专项施工方案审查意见
- ZAPI(萨牌)控制器ACE2-重要参数以及调试步骤
- 道路绿化养护投标方案(技术方案)
- GB/T 11064.16-2023碳酸锂、单水氢氧化锂、氯化锂化学分析方法第16部分:钙、镁、铜、铅、锌、镍、锰、镉、铝、铁、硫酸根含量的测定电感耦合等离子体原子发射光谱法
- 2023年云南文山州州属事业单位选调考试试卷真题
- dd5e人物卡可填充格式角色卡夜版
- 浅谈中华优秀传统文化融入中职教育研究
- 生产管理制度文本普通货运
- 舞蹈概论课程教学大纲
- 数字媒体艺术概论
- 内科学讲义(唐子益版)
评论
0/150
提交评论