建造者模式:将复杂对象的具体构造过程与它的表示分隔开。
1 namespace DesignModel.建造者模式 2 { 3 abstract class Builder 4 { 5 public abstract void CreatePart1(); 6 public abstract void CreatePart2(); 7 } 8 class builderA : Builder 9 { 10 public override void CreatePart1() { } 11 12 public override void CreatePart2() { } 13 } 14 15 class Director 16 { 17 public Director(Builder builder) 18 { 19 //if(xx) 指挥者类控制建造过程 20 //与模板方法比较:将模板方法里面的骨架部分单独成这个类了。将这部分独立出来, 21 //充分表达 建造逻辑与具体建造过程分离的思想。当有这种情况也就不选择模板方法模式。 22 builder.CreatePart1(); 23 //else 24 builder.CreatePart2(); 25 } 26 } 27 } 28 29 static void 建造者模式() 30 { 31 var product = new builderA(); 32 var director = new Director(product); 33 }