已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
建造者 生成器Builder 模式 仔细阅读体会 建造小人 例子建造 小人 的过程是稳定的 都需要头身手脚 具体建造的细节不同 有胖瘦高矮等区别 抽象的建造人的类 abstractclassPersonBuilder protectedGraphicsg protectedPenp publicPersonBuilder Graphicsg Penp this g g this p p publicabstractvoidBuildHead publicabstractvoidBuildBody publicabstractvoidBuildArmLeft publicabstractvoidBuildArmRight publicabstractvoidBuildLegLeft publicabstractvoidBuildLegRight classPersonThinBuilder PersonBuilder publicPersonThinBuilder Graphicsg Penp base g p publicoverridevoidBuildHead g DrawEllipse p 50 20 30 30 publicoverridevoidBuildBody g DrawRectangle p 60 50 10 50 建造一个瘦的小人 publicoverridevoidBuildArmLeft g DrawLine p 60 50 40 100 publicoverridevoidBuildArmRight g DrawLine p 70 50 90 100 publicoverridevoidBuildLegLeft g DrawLine p 60 100 45 150 publicoverridevoidBuildLegRight g DrawLine p 70 100 85 150 建造一个胖的小人 略 classPersonFatBuilder PersonBuilder 指挥者角色 控制建造过程 隔离用户与建造过程的关联 classPersonDirector privatePersonBuilderpb publicPersonDirector PersonBuilderpb this pb pb publicvoidCreatePerson pb BuildHead pb BuildBody pb BuildArmLeft pb BuildArmRight pb BuildLegLeft pb BuildLegRight 客户端 Penp newPen Color Yellow PersonThinBuilderptb newPersonThinBuilder pictureBox1 CreateGraphics p PersonDirectorpdThin newPersonDirector ptb pdThin CreatePerson PersonFatBuilderpfb newPersonFatBuilder pictureBox2 CreateGraphics p PersonDirectorpdFat newPersonDirector pfb pdFat CreatePerson 建造者 Builder 模式 将一个复杂对象的构建与它的表示分离 使得同样的构建过程可以创建不同的表示 对象性质的建造 有些情况下 一个对象会有一些重要的性质 在它们没有恰当的值之前 对象不能作为一个完整的产品使用 比如 一个电子邮件有发件人地址 收件人地址 主题 内容 附录等部分 而在最起码的收件人地址未被赋值之前 这个电子邮件不能发出 对象性质的建造 有些情况下 一个对象的一些性质必须按照某个顺序赋值才有意义 在某个性质没有赋值之前 另一个性质则无法赋值 这些情况使得性质本身的建造涉及到复杂的商业逻辑 这时候 此对象相当于一个有待建造的产品 而对象的这些性质相当于产品的零件 建造产品的过程就是组合零件的过程 由于组合零件的过程很复杂 因此 这些 零件 的组合过程往往被 外部化 到一个称作建造者的对象里 建造者返还给客户端的是一个全部零件都建造完毕的产品对象 思路 先把构建过程独立出来 在建造者模式中把它称为指导者 由他来指导装配过程 但不负责每步具体的实现 要有能具体实现每步的对象 称之为建造者或者生成器 Builder模式的结构 建造者 Builder 角色 定义创建一个Product对象所需的各个部件的操作 具体建造者 ConcreteBuilder 角色 实现Builder角色提供的接口 一步一步完成创建产品实例的过程 在建造过程完成后 提供产品的实例 指导者 Director 角色 主要用来使用Builder接口 以一个统一的过程来构建所需要的Product对象产品 Product 角色 产品便是建造中的复杂对象 指导者角色是与客户端打交道的角色 指导者角色将客户端创建产品的请求划分为对各个零件的建造请求 再将这些请求委派给具体建造者角色 具体建造者角色是做具体建造工作的 但却不为客户端所知 客户端作用 客户端负责创建指导者和具体建造者对象 然后 客户把具体建造者对象交给指导者 客户一声令下 指导者操纵建造者开始创建产品 当产品创建完成后 建造者把产品返还给客户端 在什么情况下使用建造者模式 需要生成的产品对象有复杂的内部结构 需要生成的产品对象的属性相互依赖 建造者模式可以强迫生成顺序 在对象创建过程中会使用到系统中的一些其它对象 这些对象在产品对象的创建过程中不易得到 使用建造者模式主要有以下效果 建造者模式的使用使得产品的内部表象可以独立的变化 使用建造者模式可以使客户端不必知道产品内部组成的细节 每一个Builder都相对独立 而与其它的Builder无关 模式所建造的最终产品更易于控制 本质 分离整体构建算法和部件构造 继续工厂方法中的实例 导出数据的应用框架 通常对于具体的到处内容和格式是有要求的 分成三部分 文件头 文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二级教师考试试题及答案
- 钻采工程方案设计
- 防爆变频电器项目可行性研究报告(案例模板)
- 陶瓷研究报告国内陶瓷行业发展趋势及发展策略研究报告(2025年)
- 静安区志丹系统提标调蓄池工程可行性研究报告(初步设计深度)行
- 黄河湿地生态修复工程项目可行性研究报告
- 2026年一级建造师一建市政实务案例分析考前十页纸考点重点知识预测记忆总结笔记
- 承包电杆协议书
- 贷记卡授信协议书
- 建筑智能化安防布线创新创业项目商业计划书
- 冬季钢结构焊接施工技术与费用分析
- 高校思政说课课件
- 2025年教师考试时事政治考点热点题库含完整答案
- 球馆合伙协议合同模板
- 2024年陕西咸阳杨陵区招聘社区专职工作人员考试真题
- 2025中国光伏组件回收技术发展现状与循环经济战略报告
- 雨课堂在线学堂《军事历史-第二次世界大战史》单元考核测试答案
- 家庭宽带服务质量保障流程规范(2024版)
- 学堂在线 战场侦察监视技术与装备 章节测试答案
- 铁路行车事故应急预案范本
- 最新人教版九年级英语(全一册)单元测试题全套及答案
评论
0/150
提交评论