




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第四讲 建造者模式 Buider 2 场景 翻译机 MM最爱听的就是 我爱你 这句话了 见到不同地方的MM 要能够用她们的方言跟她说这句话哦 我有一个多种语言翻译机 上面每种语言都有一个按键 见到MM我只要按对应的键 它就能够用相应的语言说出 我爱你 这句话了 国外的MM也可以轻松搞掂 这就是我的 我爱你 builder 这一定比美军在伊拉克用的翻译机好卖 3 Builder模式概述 Builder模式是一种创建型模式 它主要是应对项目中一些复杂对象的创建工作 所谓 复杂对象 是指 此对象中还含有其它的子对象 意图 将一个复杂的构建与其表示相分离 使得同样的构建过程可以创建不同的表示 4 Builder模式概述 建造者模式将产品的内部表象和产品的生成过程分割开来 从而使一个建造过程生成具有不同的内部表象的产品对象 使用该模式可以逐步地构造对象 使得对象的创建更具弹性 生成器模式的关键是将一个包含有多个组件对象的创建分成若干个步骤 并将这些步骤封装在一个称作生成器的接口中 5 相关的模式 抽象工厂 AbstractFactory 模式共性 创建型模式 创建类对象区别 AbstractFactory模式 解决 系列对象 的需求变化Builder模式 解决 对象部分 的需求变化 通常和组合模式结合使用 6 Builder模式的角色 产品 Product 抽象生成器 Builder 具体生成器 ConcreteBuilder 指挥者 Director 7 Builder模式结构 建造者 Builder 角色具体建造者 ConcreteBuilder 角色产品 Product 角色指导者 Director 角色 8 Builder模式示例 1 产品 Product PanelProduct javaimportjavax swing publicclassPanelProductextendsJPanel JButtonbutton JLabellabel JTextFieldtextField 9 Builder模式示例 2 抽象生成器 Builder Builer javaimport javax swing publicinterfaceBuilder publicabstractvoidbuildButton publicabstractvoidbuildLabel publicabstractvoidbuildTextField publicabstractJPanelgetPanel 10 Builder模式示例 3 具体生成器 ConcreteBuilder 1 ConcreteBuilderOne javaimportjavax swing publicclassConcreteBuilderOneimplementsBuilder privatePanelProductpanel ConcreteBuilderOne panel newPanelProduct publicvoidbuildButton panel button newJButton 按钮 publicvoidbuildLabel panel label newJLabel 标签 publicvoidbuildTextField panel textField newJTextField 文本框 publicJPanelgetPanel panel add panel button panel add panel label panel add panel textField returnpanel 11 Builder模式示例 3 具体生成器 ConcreteBuilder 2 ConcreteBuilderTwo javaimportjavax swing publicclassConcreteBuilderTwoimplementsBuilder privatePanelProductpanel ConcreteBuilderTwo panel newPanelProduct publicvoidbuildButton panel button newJButton button publicvoidbuildLabel panel label newJLabel label publicvoidbuildTextField panel textField newJTextField textField publicJPanelgetPanel panel add panel textField panel add panel label panel add panel button returnpanel 12 Builder模式示例 4 指挥者 Director Director javaimportjavax swing publicclassDirector privateBuilderbuilder Director Builderbuilder this builder builder publicJPanelconstructProduct builder buildButton builder buildLabel builder buildTextField JPanelproduct builder getPanel returnproduct 13 Builder模式示例 5 应用Application javaimportjavax swing publicclassApplication publicstaticvoidmain Stringargs Builderbuilder newConcreteBuilderOne Directordirector newDirector builder JPanelpanel director constructProduct JFrameframeOne newJFrame frameOne add panel frameOne setBounds 12 12 200 120 frameOne setDefaultCloseOperation JFrame DISPOSE ON CLOSE frameOne setVisible true builder newConcreteBuilderTwo director newDirector builder panel director constructProduct JFrameframeTwo newJFrame frameTwo add panel frameTwo setBounds 212 12 200 120 frameTwo setDefaultCloseOperation JFrame DISPOSE ON CLOSE frameTwo setVisible true 14 优缺点 建造者模式的使用使得产品的内部表象可以独立的变化 使用建造者模式可以使客户端不必知道产品内部组成的细节 每一个Builder都相对独立 而与其它的Builder无关 可使对构造过程更加精细控制 将构建代码和表示代码分开 当增加新的具体生成器时 不必修改指挥者的代码 即该模式满足开 闭原则 建造者模式的缺点在于难于应付 分步骤构建算法 的需求变动 15 适用性 复杂的内部结构相互依赖的各部分创建过程独立各部分变化剧烈 组合算法相对稳定 16 总结 Builder模式的实质是 解决
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司海岸团建活动方案
- 公司羽毛球协会策划方案
- 公司活动优惠策划方案
- 公司组织了各种活动方案
- 公司百人活动方案
- 公司日常跑步活动方案
- 公司旗帜传递活动方案
- 2025年高性能低汞电池项目可行性研究报告
- 技术创新的投资与风险控制
- 探索的智能优化路径
- 小学生汇报讲课件
- 2025浙江嘉兴市海宁市嘉睿人力招聘5人笔试参考题库附带答案详解析版
- 2025年安徽蚌埠市龙子湖区东方人力资源有限公司招聘笔试参考题库含答案解析
- 党课课件含讲稿:《关于加强党的作风建设论述摘编》辅导报告
- GB/T 19023-2025质量管理体系成文信息指南
- 2025中考历史高频点速记大全
- 2025年特种设备作业人员气瓶充装P证考试题库
- 《智能驾驶辅助系统ADAS》课件
- 多余物管理制度
- 2024北京朝阳区三年级(下)期末语文试题及答案
- 灌肠技术操作课件
评论
0/150
提交评论