【设计模式】—— 创建者模式Builder
2017-05-16 21:59
393 查看
模式意图
一个对象的创建十分复杂,为了区分构建过程和使用过程,因此分开。使用一个Director类进行对象的创建,Builder规定了这个创建过程。
模式结构
Builder 抽象建造者接口,规范各个组成部分的构建。
ConcreteBuilder 具体建造者角色,实现组成部分的构建,并提供示例。
Product 产品角色,创建返回的对象。
Director 导演者角色,负责创建以及使用。
使用场景
1 当创建对象复杂并且与其使用过程独立。2 构造过程允许构造的对象有不同的表示。
代码结构
Builder接口abstract class Builder{
public abstract void buildPart1();
public abstract void buildPart2();
public abstract Product retrieveResult();
}
ConcreteBuilder 具体产品
class ConcreteBuilder extends Builder{
public void buildPart1() {
}
public void buildPart2() {
}
public Product retrieveResult() {
return null;
}
}
Product 产品
class Product{
//Anything
}
Director 导演者角色
class Director{
private Builder builder;
public void Constructor(){
builder = new ConcreteBuilder();
builder.buildPart1();
builder.buildPart2();
builder.retrieveResult();
}
}
生活中的设计模式
变形金刚喜欢第一部的女主角。
而擎天柱队长,经典的台词,“汽车人变身”也是伴随着复杂的变化过程。而汽车人的转变只在一瞬之间,看起来行云流水,这就有点创建者的味道。擎天柱的各个身体部分经过复杂的变化,最后变身成为汽车人。
1 /**
2 * Builder
3 */
4 interface Transformer{
5 public void Create_Head();
6 public void Create_Body();
7
8 public Autobots transforming();
9 }
10 /**
11 * ConcreteBuilder
12 */
13 class Transformer_Captain implements Transformer{
14 public void Create_Head() {
15 System.out.println("变形出脑袋...");
16 }
17 public void Create_Body() {
18 System.out.println("变形出身体...");
19 }
20 public Autobots transforming() {
21 return new Autobots();
22 }
23 }
24 /**
25 * Product
26 */
27 class Autobots{
28 Autobots(){
29 System.out.println("啊!...变形金刚 变身....");
30 }
31 }
32 /**
33 * 这个类当做Director
34 */
35 public class TransformerBuilder {
36
37 public static Autobots Transforming(Transformer optimusPrime){
38 optimusPrime.Create_Head();
39 optimusPrime.Create_Body();
40 return optimusPrime.transforming();
41 }
42
43 public static void main(String[] args){
44 Transformer optimusPrime = new Transformer_Captain();
45 Transforming(optimusPrime);
46 }
47
48 }
变身结果
变形出脑袋... 变形出身体... 啊!...变形金刚 变身...
相关文章推荐
- 设计模式 (四)创建者模式(Builder)
- [设计模式整理笔记 五] 创建者模式(Builder)
- 我说设计模式 - 创建者模式(Builder)
- JAVA设计模式——创建者模式(builder)
- [设计模式整理笔记 五] 创建者模式(Builder)
- 设计模式学习---创建者模式(BuilderPattern)
- 设计模式 (四)创建者模式(Builder)
- 《模式——工程化实现及扩展》(设计模式C# 版)《创建者模式 Builder》——正文完整示例
- 设计模式之创建者模式(Builder)
- java设计模式-Builder创建者模式
- "围观"设计模式(9)--创建型之创建者模式(Builder Pattern)
- 设计模式之Builder (创建者模式)的一些个人理解(转)
- 设计模式(DesignPattern)之创建者模式(Builder)
- 设计模式(五)创建者模式(Builder)
- 设计模式(五)创建者模式(Builder)-创建型
- 《模式——工程化实现及扩展》(设计模式C# 版)《创建者模式 Builder》——“自我检验" 参考答案
- 设计模式拾荒之创建者模式( Builder Pattern )
- 设计模式 (四)创建者模式(Builder)
- C#设计模式之建造者(Builder)模式示例源代码
- 设计模式之Builder