public static House giveTenderToSohomotVai(string input) { HouseType houseType = new ConcreteBuilder(); HouseDirector houseDirector = houseType.GetHouseTypes(input); BuilderCompany builderCompany = new BuilderCompany(houseDirector); builderCompany.constructHouse(); House house = builderCompany.GetHouse(); return(house); }
/// <summary> /// Problem: If we have to initial some object that has many step or complex to initialize. /// Solved: Use Builder pattern to solve the problem by create the Product, Builder and Director. /// The Builder will handle how to create the object. /// The Director will handle to manage the builder for works. /// And in finally we will get the product via Builder get result method (GetHouse in this case). /// </summary> public override void Demo() { Console.WriteLine($"================Builder================{Environment.NewLine}"); // in case we want to created wooden house var woodenHouseBuilder = new WoodenHouseBuilder(); var houseDirector = new HouseDirector(woodenHouseBuilder); houseDirector.CreateWoodenHouse(); var woodenHouse = woodenHouseBuilder.GetHouse(); woodenHouse.ListAllPart(); // in case we want to create brick house var brickHouseBuilder = new BrickHouseBuilder(); houseDirector = new HouseDirector(brickHouseBuilder); houseDirector.CreateBrickHouse(); var brickHouse = brickHouseBuilder.GetHouse(); brickHouse.ListAllPart(); Console.WriteLine($"{Environment.NewLine}================Builder================"); }
static void Main(string[] args) { Console.WriteLine("Builder"); Console.WriteLine("House Construction Example"); var houseDirector = new HouseDirector(); var stoneHouseBuilder = new StoneHouseBuilder(); houseDirector.SetBuilder(stoneHouseBuilder); Console.WriteLine("\n[Simple Stone House]"); houseDirector.BuildSimpleHouse(); var simpleStoneHouse = stoneHouseBuilder.Build(); PrintResult(simpleStoneHouse); Console.WriteLine("\n[Nice Stone House]"); houseDirector.BuildNiceHouse(); var niceStoneHouse = stoneHouseBuilder.Build(); PrintResult(niceStoneHouse); Console.WriteLine("\n[Simple Wood House]"); var woodHouseBuilder = new WoodHouseBuilder(); houseDirector.SetBuilder(woodHouseBuilder); houseDirector.BuildSimpleHouse(); var simpleWoodHouse = woodHouseBuilder.Build(); PrintResult(simpleWoodHouse); Console.WriteLine("\n[Nice Wood House]"); houseDirector.BuildNiceHouse(); var niceWoodHouse = woodHouseBuilder.Build(); PrintResult(niceWoodHouse); }
public BuilderCompany(HouseDirector houseDirector) { _houseDirector = houseDirector; }