第四讲 建造者模式(Buider) 场景—翻译机 MM最爱听的就是"我爱你"这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出"我爱你"这句话了,国外的MM也可以轻松搞掂,这就是我的"我爱你"builder。(这一定比美军在伊拉克用的翻译机好卖) Builder模式概述 Builder模式是一种创建型模式,它主要是应对项目中一些复杂对象的创建工作。 所谓“复杂对象”是指:此对象中还含有其它的子对象。 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 Builder模式概述 建造者模式将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。 使用该模式可以逐步地构造对象,使得对象的创建更具弹性。生成器模式的关键是将一个包含有多个组件对象的创建分成若干个步骤,并将这些步骤封装在一个称作生成器的接口中。 相关的模式 抽象工厂(Abstract Factory)模式 共性:创建型模式、创建类对象 区别: Abstract Factory模式:解决“系列对象”的需求变化 Builder模式:解决“对象部分”的需求变化,通常和组合模式结合使用 Builder模式的角色 产品(Product) 抽象生成器(Builder) 具体生成器(ConcreteBuilder) 指挥者(Director) Builder模式示例 1.产品(Product): PanelProduct.java import javax.swing.*; public class PanelProduct extends JPanel{ JButton button; JLabel label; JTextField textField; } Builder模式示例 2.抽象生成器(Builder): Builer.java import.javax.swing.*; public interface Builder{ public abstract void buildButton(); public abstract void buildLabel(); public abstract void buildTextField(); public abstract JPanel getPanel(); } Builder模式示例 3.具体生成器(ConcreteBuilder)_1:ConcreteBuilderOne.java import javax.swing.*; public class ConcreteBuilderOne implements Builder{ private PanelProduct panel; ConcreteBuilderOne(){ panel=new PanelProduct(); } public void buildButton(){ panel.button=new JButton("按钮"); } public void buildLabel(){ panel.label=new JLabel("标签"); } public void buildTextField(){ panel.textField=new JTextField("文本框"); } public JPanel getPanel(){ panel.add(panel.button); panel.add(panel.label); panel.add(panel.textField); return panel; } } Builder模式示例 3.具体生成器(ConcreteBuilder)_2:ConcreteBuilderTwo.java import javax.swing.*; public class ConcreteBuilderTwo implements Builder{ private PanelProduct panel; ConcreteBuilderTwo(){

java建造者模式 ppt_23种设计模式详解及实现方式.ppt相关推荐

  1. 23 种设计模式详解

    转自原文 23 种设计模式详解(全23种) 设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种: 工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种: 适配 ...

  2. 23种设计模式详解(代码讲解、持续更新)

    目录 设计模式分类 设计模式的六大原则 创建型模式 1.工厂方法模式(Factory Method) 2.建造者模式(Builder Pattern(常用.常见)) 行为型模式 模板模式(Templa ...

  3. Java开发中的23种设计模式详解(转)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  4. 【java】java开发中的23种设计模式详解

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  5. java 23种设计模式详解

    1. 软件设计模式意义 文章链接:http://c.biancheng.net/design_pattern/     设计模式的本质是对面向对象设计原则运用,是对类的封装.继承和多态以及类的关联关系 ...

  6. Java常用10种设计模式详解

    一.单例模式 单例模式属于创建型模式,解决某个类频繁的创建与销毁.该模式保证了其对象在JVM中只有一个实例对象存在.必须保证私有化构造函数,只能有一个实例对象存在. 优点: 减少new关键字的使用,降 ...

  7. Java开发中的23种设计模式详解

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  8. java中控制反转_Java如何利用IOC控制反转的三种设计模式详解

    这篇文章主要为大家详细介绍了Java使用IOC控制反转的三种设计模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 对于许多开发人员来说,控制反演(IoC)都是一个模糊的概念,因为他们在现实世界中 ...

  9. Java的23种设计模式详解

    创建型模式 1.FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说"来四个鸡翅"就 ...

最新文章

  1. asp.net 2.0中的弹出对话框
  2. hibernate整合进spring后的事务处理
  3. 如何避免把软件装到C盘
  4. leetcode之Insertion Sort List
  5. php显示上一次登陆的时间长,PHP 用COOKIE实现记住上一次登陆的数据
  6. c++ 不插入重复元素但也不排序_面试官爱问的 10 大经典排序算法,20+ 张图来搞定...
  7. 一次性补缴17万元办社保,每月可以领1400多,可否办理?
  8. WPD 从便携设备拷贝文件到PC文件不完整的解决办法
  9. 【渝粤教育】电大中专金融与税收 (2)_1作业 题库
  10. Win7/Win8/IIS7/IIS8配置ASP/ACCESS
  11. ptaa乘以b_pta程序设计平台-PTA,系统
  12. 使用vb脚本实现钉钉重复发送10条消息
  13. Visio有用的画图技巧
  14. echart 圆饼图 显示单位_ajax请求echarts圆饼图动态显示数据方法
  15. 组态软件实现RFID设备数据采集
  16. autocomplete触发事件_如何防止onSelect事件在DevBridge jQuery Autocomplete中触发两次
  17. Python数据分析案例07——二手车估价(机器学习全流程,数据清洗、特征工程、模型选择、交叉验证、网格搜参、预测储存)
  18. python使用Thread的setDaemon启动后台线程
  19. 微积分学在计算机科学中的应用,浅谈微积分学在中学数学教学中的应用解答.doc...
  20. 镁光ddr3布线规则_PCB设计要点-DDR3布局布线技巧及注意事项

热门文章

  1. 基于布里渊散射的光纤温度和应变快速感知
  2. C#4.0捷径教程笔记(2)
  3. 鱼刺等食物卡到喉咙的海姆立克急救…
  4. QQ群是小人聚集的场所,天大地大,我就不信你们能全网封杀我
  5. c语言程序设计课程设计心得体会,C语言课程设计的心得体会
  6. adxl345取出值怎么算角度_ADXL345直接输出角度值C51程序.doc
  7. 开场-认知职业进阶通道
  8. Android ART 分析
  9. Qcon2016上海站PPT
  10. ios-视频录制保存