java设计模式:Builder模式
Builder模式关键是在建立对象是一步一步处理
package customer;class Starbucks
{private String size;private String drink;public void setSize(String size){this.size = size;}public void setDrink(String drink){this.drink = drink;}
}abstract class StarbucksBuilder
{protected Starbucks starbucks;public Starbucks getStarbucks(){return starbucks;}public void createStarbucks(){starbucks = new Starbucks();System.out.println("a drink is created");}public abstract void buildSize();public abstract void buildDrink();
}class TeaBuilder extends StarbucksBuilder
{public void buildSize(){starbucks.setSize("large");System.out.println("build large size");}public void buildDrink(){starbucks.setDrink("tea");System.out.println("build tea");}
}class CoffeeBuilder extends StarbucksBuilder
{public void buildSize(){starbucks.setSize("medium");System.out.println("build medium size");}public void buildDrink(){starbucks.setDrink("coffee");System.out.println("build coffee");}
}class Waiter
{private StarbucksBuilder starbucksBuilder;public void setStarbucksBuilder(StarbucksBuilder builder){starbucksBuilder = builder;}public Starbucks getstarbucksDrink(){return starbucksBuilder.getStarbucks();}public void constructStarbucks(){starbucksBuilder.createStarbucks();starbucksBuilder.buildDrink();starbucksBuilder.buildSize();}
}public class Customer {public static void main(String[] args) {Waiter waiter = new Waiter();StarbucksBuilder coffeeBuilder = new CoffeeBuilder();waiter.setStarbucksBuilder(coffeeBuilder);waiter.constructStarbucks();Starbucks drink = waiter.getstarbucksDrink();}}
Builder与Factory模式的区别:
Builder模式要很多步来创建对象,而Factory模式只需要一个方法调用就能创建对象
java设计模式:Builder模式相关推荐
- Java设计模式——Builder模式
前言 之前写Android程序的时候,经常会用到Dialog(对话框)这个控件.我们在使用Dialog,比如AlertDialog的时候就用到了这里要说明的Builder模式.现在我们来看一下这样的一 ...
- Java设计模式-Builder模式
Builder模式是将一个复杂对象的创建和表示分离,使同样的创建过程可以创建不同的表示.它属于建造类模式. 一般来说,如果一个对象的创建比较复杂,超出了构造方法所能包含的范围,就可以使用工厂模式和Bu ...
- Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式
Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式 一.概述 模板设计模式: 父类定义通用抽象的功能方法,子类负责具体的实现. 本文将以一个通 ...
- Java 设计模式——建造者模式(Builder Pattern)
前言 一.简介 二.实现方式 三.常见第一种方式 (1)一般有以下几个角色 (2)举个例子 (3)具体步骤 (4)具体代码 三.第二种方式 (1)主要有三个角色:抽象建造者.具体建造者.产品 (2) ...
- 重学Java设计模式-创建者模式-建造者模式
重学Java设计模式-创建者模式-建造者模式 内容摘自:重学 Java 设计模式:实战建造者模式「各项装修物料组合套餐选配场景」 | bugstack 虫洞栈 建造者模式介绍 图片来自:https:/ ...
- 设计模式-Builder模式
目录 一个例子(做汤) 人工做汤 机器做汤(使用Builder模式) 优缺点 优点 缺点 Builder模式属于创建型模式. 它是将一个复杂对象的构建过程隐藏起来,让使用者只关系自己要生成什么样的对象 ...
- Java 设计模式——状态模式
概述 很多人在说状态模式的时候总拿策略模式来进行对比,可能他们的类图会有一点类似,可我却不认为他们有多么相像.你可以阅读<Java设计模式--策略模式>这篇博客,并与本文对比,以找到蛛丝马 ...
- Java设计模式-工厂模式(3)抽象工厂模式
在Java设计模式-工厂模式(2)工厂方法模式 我们知道了工厂方法模式解决了简单工厂模式中的缺陷,做到了满足开闭原则,但是时代是进步的,进而又产生新的问题,工厂难道只能生产一种东西吗.我们所见到的工厂 ...
- Java设计模式-工厂模式(2)工厂方法模式
在Java设计模式-工厂模式(1)简单工厂模式 中我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而"工厂方法模式"是对简单工厂模式的进一步抽象化,其好处是可以使系统在不 ...
- Java设计模式-工厂模式(1)简单工厂模式
Java设计模式-工厂模式(1)简单工厂模式 一.前言 1)例子 2)类图关系 3)代码实现 二.简单工厂模式 2.1.概述: 2.2.类图关系: 2.3.代码修改: 2.4.优缺点 2.5.扩展-简 ...
最新文章
- hdu4169_Wealthy Family_树形DP(2011美国区域赛)
- 以下哪个不是迭代算法的缺点_海量数据分库分表方案(一)算法方案
- PTA 1002 Business (35分)
- Python+matplotlib数据可视化鼠标悬停自动标注功能实现
- bzoj 3036: 绿豆蛙的归宿(Dp)
- RedHat 5.6_x86_64 + ASM + RAW+ Oracle 10g RAC (二)
- Win7开机动画图片下载大全 修改攻略
- 微信v3版本-native支付和支付宝支付接口对接
- Googler为什么很幸福?
- 通过c语言求得一个英文句子中的单词数量
- 进入 32 位时代,谁能成为下一个8051?
- The tomcat server configuration at /sever/tomcat v9.0 localhost-config is.......错误解析
- dell出现插入耳机无提示,无反应
- java 实现繁简字体转换(笨方法)
- 新生宝宝办证-STEP1-出生证明办理
- 图书管理系统java课设_JavaGUI图书管理系统(可作课程设计)
- Linux--增加用户、添加用户组
- 各大高校自曝状态一览 排名不分先后
- 爬取拉勾网上求职信息,并导入Excel(记录代码贴)
- 平凡人的一生的意义是什么?
热门文章
- Codeforces Round #265 (Div. 2) E. Substitutes in Number
- Struts2+Android (3) 多种方式向服务器发送信息
- 设计模式心得笔记--简单工厂
- 更改WSSv3站点集访问地址
- php中sql where,sql?where
- mysql 查询优化器跟踪_3. select语句执行过程-优化器
- 从零开始学习python-如何从零开始学python?
- python编程语法-Python学习笔记(Ⅰ)——Python程序结构与基础语法
- python怎么打开交互式窗口-如何在交互式环境中执行Python程序
- python输出价目表-Python:使用基于事件驱动的SAX解析XML