建造者模式的几种演化
省略抽象建造者角色
系统中只需要一个具体建造者,省略掉抽象建造者,结构图如下:

指导者代码如下:
省略指导者角色1 class Director
2 {
3 private ConcreteBuilder builder;
4
5 public void Construct()
6 {
7 builder.BuildPartA();
8 builder.BuildPartB();
9 }
10 }
抽象建造者角色已经被省略掉,还可以省略掉指导者角色。让Builder角色自己扮演指导者与建造者双重角色。结构图如下:

建造者角色代码如下:
客户程序:1 public class Builder
2 {
3 private Product product = new Product();
4
5 public void BuildPartA()
6 {
7 //
8 }
9
10 public void BuildPartB()
11 {
12 //
13 }
14
15 public Product GetResult()
16 {
17 return product;
18 }
19
20 public void Construct()
21 {
22 BuildPartA();
23 BuildPartB();
24 }
25 }
1 public class Client
2 {
3 private static Builder builder;
4
5 public static void Main()
6 {
7 builder = new Builder();
8 builder.Construct();
9 Product product = builder.GetResult();
10 }
11 }