private static House BuildHouse(HouseBuilder builder) { Director director = new Director(builder); director.Construct(); return(builder.GetBuildResult()); }
//适用性: //1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 //2.当构造过程必须允许被构造的对象有不同的表示时。 public void test() { Builder builder = new HouseBuilder(); Designer designer = new Designer(); designer.Commond(builder); House house = builder.GetHouse(); house.Show(); }
public static void Main() { Console.WriteLine($"Builder Demo\n\n\n"); House house = HouseBuilder .Init() .AddFloor() .AddWalls() .AddRoof() .Build(); Console.WriteLine($"We just built an house! {house.ToString()}"); }
public CivilEngineer(HouseBuilder houseBuilder) { this.houseBuilder = houseBuilder; }
//或者通过set方法传入houseBuilder public void setHouseBuild(HouseBuilder houseBuilder) { this.houseBuilder = houseBuilder; }
//通过构造器传入houseBuilder public HouseDirector(HouseBuilder houseBuilder) { this.houseBuilder = houseBuilder; }
public Director(HouseBuilder builder) { this._builder = builder; }