标签:参与者 style com 组成 nta 表示 抽象 分离 对象
建造者模式(Builder Pattern)
Separate the construction of a complex object from its representation so that the same construction process can create different representations.
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
1、Builder
-为创建一个Product对象的各个部件指定抽象接口。
2、ConcreteBuilder
-实现Builder的接口以构造和装配该产品的各个部件。
-定义并明确他所创建的表示。
-提供一个检索产品的接口。
3、Director
-构造一个使用Builder接口的对象。
4、Product
-表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。
-包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
abstract class Builder { protected Product product=new Product(); public abstract void buildPartA(); public abstract void buildPartB(); public abstract void buildPartC(); public Product getProduct() { return product; } }
public class ConcreteBuilder extends Builder { public void buildPartA() { product.setPartA("set PartA"); } public void buildPartB() { product.setPartB("set PartB"); } public void buildPartC() { product.setPartC("set PartC"); } }
class Director { private Builder builder; public Director(Builder builder) { this.builder=builder; } public Product construct() { builder.buildPartA(); builder.buildPartB(); builder.buildPartC(); return builder.getProduct(); } }
class Product { private String partA; private String partB; private String partC; public void setPartA(String partA) { this.partA=partA; } public void setPartB(String partB) { this.partB=partB; } public void setPartC(String partC) { this.partC=partC; } public void show() { } }
Builder模式着重于一步步构造一个复杂对象。通常情况下,由具体生成器生成的产品,它们的表示相差很大,以至于给不同的产品以公共父类没有太大的意义。
《设计模式:可复用面向对象软件的基础》
标签:参与者 style com 组成 nta 表示 抽象 分离 对象
原文地址:https://www.cnblogs.com/diameter/p/13171675.html