Builder
protected Product product;
bulidPartA()bulidPartB()bulidPartC()getResult():Product
Director
builder:Builder
+construct(Builder builder)
builder.buildPartA()builder.buildPartB()builder.buildPartC()return builder.getResult()
Product
PartA;PartB;PartC;
+ operation1(params):returnType- operation2(params)- operation3()
ConcreteBuilder
bulidPartA()bulidPartB()bulidPartC()