概念:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
核心:用户只需要指定需要建造的类型,不需要知道建造的过程和细节。
建造者设计模式

java代码:
public class BuilderTest {public static void main(String[] args) {Director director = new Director(new ConcreteBuilderA());director.Construct();}}//建造者接口public abstract class Builder {public abstract void BuildPartA();public abstract void BuildPartB();public abstract void BuildPartC();}//指挥者public class Director {Builder builder;public Director(Builder builder){this.builder = builder;}public void Construct(){builder.BuildPartA();builder.BuildPartB();builder.BuildPartC();}}public class ConcreteBuilderA extends Builder{@Overridepublic void BuildPartA() {System.out.println("构建A对象A部分");}@Overridepublic void BuildPartB() {System.out.println("构建A对象B部分");}@Overridepublic void BuildPartC() {System.out.println("构建A对象C部分");}}public class ConcreteBuilderB extends Builder {@Overridepublic void BuildPartA() {System.out.println("构建B对象A部分");}@Overridepublic void BuildPartB() {System.out.println("构建B对象B部分");}@Overridepublic void BuildPartC() {System.out.println("构建C对象C部分");}}
