生成器模式——对象创建型模式
2016-08-29 17:22
190 查看
一、意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以构建不同的表示。
二、适用性
在以下情况下使用Builder模式
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
三、结构
四、代码
Builder
具体的Builder
Product
Director
Client
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以构建不同的表示。
二、适用性
在以下情况下使用Builder模式
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
三、结构
四、代码
Builder
public abstract class Builder { abstract void buildPartA(String text); abstract void buildPartB(String text); abstract void buildPartC(String text); abstract Product getResult(); }
具体的Builder
public class ConcreteBuilder extends Builder { private String partA ; private String partB; private String partC; @Override void buildPartA(String text) { this.partA = text; } @Override void buildPartB(String text) { this.partB = text; } @Override void buildPartC(String text) { this.partC = text; } @Override Product getResult() { Product product = new Product(); product.setPartA(partA); product.setPartB(partB); product.setPartC(partC); return product; } }
Product
public class Product { private String partA; private String partB; private String partC; public String getPartA() { return partA; } public void setPartA(String partA) { this.partA = partA; } public String getPartB() { return partB; } public void setPartB(String partB) { this.partB = partB; } public String getPartC() { return partC; } public void setPartC(String partC) { this.partC = partC; } @Override public String toString() { return "Product{" + "partA='" + partA + '\'' + ", partB='" + partB + '\'' + ", partC='" + partC + '\'' + '}'; } }
Director
public class Director { private Builder mBuilder; public Director(Builder builder){ this.mBuilder = builder; } public Product getProduct(){ return mBuilder.getResult(); } }
Client
public class Client { public static void main(String[] args){ Builder builder = new ConcreteBuilder(); builder.buildPartA("partA"); builder.buildPartB("partB"); builder.buildPartC("partC"); Director director = new Director(builder); System.out.println(director.getProduct()); } } 执行结果: Product{partA='partA', partB='partB', partC='partC'}
相关文章推荐
- 对象创建型模式------Builder(生成器或建造者模式)(2)
- 设计模式之生成器(Builder)----对象创建型模式
- 创建型模式(二)、BUILDER(生成器)---对象创建型模式
- 设计模式三:Builder 生成器——对象创建型模式
- Buileder(生成器)—对象创建型模式
- 创建模式(Builder Pattern、构建模式、生成器,对象创建型模式)
- 设计模式之BUILDER(生成器)—对象创建型模式
- Buileder(生成器)—对象创建型模式
- Buileder(生成器)—对象创建型模式
- 1.2 Builder(生成器) -- 对象创建型模式
- Builder(生成器)---对象创建型模式
- 对象创建型模式------Builder(生成器)
- Buileder(生成器)—对象创建型模式
- 创建模式(Builder Pattern、构建模式、生成器,对象创建型模式)
- Buileder(生成器)—对象创建型模式
- 设计模式之五:BUILDER(生成器)—对象创建型模式
- BUILDER(生成器)—对象创建型模式
- 设计模式 3.2 Builder(生成器)对象创建型模式
- Builder(生成器)-对象创建型模式
- Builder生成器(创建型设计模式)面向对象设计模式纵横谈讲座笔记之四